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

Regex match digits with lookahead

我有一个正则表达式:

(\d{1,20})

哪个匹配:

JPY;       7112630;

在此字符串中,我只想捕获数字:所以我使用:$1 但我还想在数字后添加“.00”,所以我使用:$1.00

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

我试过了:

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

没有成功!

您可以使用 捕获组 而不是无限宽度正后视:

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

并替换为.00。见 regex demo.

根据正则表达式引擎,您可以删除 (...) 捕获括号,并在替换模式中使用 [=13=]$& 而不是 </code>。</p> <p>此外,如果您需要将这些值作为整个单词进行匹配,请用单词边界括起来:<code>\b(JPY;\s*\d{1,20})\b.