2017-05-19 59 views
1

我有一個正則表達式:正則表達式匹配數字與前瞻

(\d{1,20}) 

至極的比賽: 日元; 7112630;

在此字符串我想只捕獲數字:SI我使用:$ 1 但我還想要個數字後加上」 .00" 所以我用:$ 1.00

但現在我也想匹配數字,只有我以前有日元。

我嘗試:

(?=JPY;\s*)(\d{1,20}) 
(?<=JPY;\s*)(\d{1,20}) 

沒有成功!

回答

1

你可以使用一個捕獲組而不是無限的寬度正回顧後發的:

(JPY;\s*\d{1,20}) 

而且隨着$1.00取代。請參閱regex demo

根據正則表達式引擎,你可以刪除(...)捕獲括號,並在置換方式使用$0$&代替$1的。

另外,如果您需要將這些值作爲整個單詞匹配,請使用單詞邊界:\b(JPY;\s*\d{1,20})\b

+1

謝謝!有用 – toto