2017-09-05 93 views
0

只是想知道为什么这个表达egrep "\$[0-9]+(\.[0-9][0-9])?" dollar.txt不匹配4.50美元,5.00美元,1000美元。它不符合任何类似的事情。REGEXP使用egrep匹配美元金额

此外,表达egrep "\$" dollar.txt匹配

$1000 over here 

no money here 

有人可以请解释原因。 (两个部分对这个问题)...谢谢

Output image

+0

的可能的复制[正则表达式匹配美元金额](https://stackoverflow.com/questions/3193403/regular-expression-to-match-dollar-amounts) –

+0

也许因为使用的例子是从书“O'Reilly掌握正则表达式”。尽管如此,我已经看过这个问题,答案似乎并没有给我一个匹配。 –

+0

在你的正则表达式中,'.'这个时期会匹配任何角色,你知道的。我想你可能是指'\ .'。 –

回答

0

尝一尝我的机器上,看来,即使在它前面的反斜杠,庆典是解释美元符号$,随着不管后面是什么,作为插入正则表达式的变量。这样做似乎解决它,但:

egrep "\Q$\E[0-9]+(\.[0-9][0-9])?" input

编辑:使用单引号(由@马克Plotnick建议),似乎做的伎俩还有:

egrep '\$[0-9]+(\.[0-9][0-9])?' input

相关问题