2014-01-10 71 views
0

我試圖匹配簡單的美元字符串(34.21美元)。我的正則表達式如下。正則表達式捕獲美元數額捕捉@符號太

\$\d+.([0-9][0-9]) 

雖然我在捕捉下面的字符串,但我不知道爲什麼。

@$23.23 

at符號是否有某種特殊含義?我沒有看到它在我的正則表達式備忘單上,這是在煩擾我。

謝謝你,MJ

+0

我的數據有@符號。 –

回答

2

你應該逃脫\.和您可能需要在模式周圍添加開始(^)和結束($)錨點:

^\$\d+\.([0-9][0-9])$ 

錨點用於確保在匹配的字符串之前或之後輸入字符串中不允許其他字符。

另外,根據您的使用*精確的語言/平臺上,這大概可以進一步簡化爲:

^\$\d+\.(\d\d)$ 

*有些正則表達式引擎會將\d等同於[0-9],而對他人它將匹配任何Unicode數字,包括來自其他數字系統的數字。

1

使用線起點和行結尾,以確保您不匹配不需要輸入:

^\$\d+\.([0-9][0-9])$ 

OR

^\$\d+\.\d{1,2}$