匹配某个表达式后获取该单词

时间:2011-06-11 21:00:48

标签: regex grep

我试图从这个字符串中得到“1.23”这个词。

字符串是

“1美元,新币1.23”。

我知道正则表达式可以找到单词,但我想得到SGD之后的数字是“1.23”。

感谢。

2 个答案:

答案 0 :(得分:1)

正则表达式可能类似于:\bSGD\s+(\d+(?:\.\d+)?),但是对于grep有效,我不确定。

使用perl你可以做类似grep的东西:

cat foo.txt | perl -n -e '/\bSGD\s+(\d+(?:\.\d+)?)/ && print "$1\n"'

答案 1 :(得分:1)

适用于-P(适用于Perl regular expression):

grep -P "(?<=\bSGD)\s*1\.23"