正则表达式与前瞻匹配数字

时间:2017-05-19 08:46:57

标签: regex lookahead lookbehind

我有正则表达式:

(\d{1,20})

匹配: 日元; 7112630;

在这个字符串中我只想抓住数字:我用的是:$ 1 但是我还想在数字后添加“.00”所以我使用:$ 1.00

但是现在我也想匹配数字,只有我之前有JPY。

我试试:

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

没有成功!

1 个答案:

答案 0 :(得分:1)

您可以使用捕获组而不是无限宽度的正向外观:

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

并替换为$1.00。请参阅regex demo

根据正则表达式引擎,您可以删除(...)捕获括号,并在替换模式中使用$0$&代替$1

此外,如果您需要将这些值与整个单词匹配,请使用单词边界括起来:\b(JPY;\s*\d{1,20})\b