如何在bash中提取与特定正则表达式匹配的字符串的特定部分?

时间:2012-02-21 02:17:58

标签: regex bash

我正在使用bash工作,主要是因为我可以使用它进行一些练习,并且我知道一个字符串与正则表达式[:blank:]+([0-9]+)[:blank:]+([0-9]+)[:blank:]+$SOMETHING匹配,假设我做对了。 (空格,数字,空格,数字,空格,我之前定义的一些字符串。)通过“匹配”,我的意思是它将此格式包含为子字符串。

有没有办法将两个数字字符串设置为只有一个正则表达式匹配的特定变量?

1 个答案:

答案 0 :(得分:1)

$BASH_REMATCH包含[[完成的最新正则表达式比较中的组。

$ [[ ' 123 456 ' =~ [[:blank:]]+([0-9]+)[[:blank:]]+([0-9]+)[[:blank:]]+ ]] && echo "*${BASH_REMATCH[1]}*${BASH_REMATCH[2]}*"
*123*456*