2017-05-19 56 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