2017-09-05 92 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

相關問題