Notepad++ REGEX 字符串末尾有 3 位或 4 位数字

Notepad++ REGEX 字符串末尾有 3 位或 4 位数字

我想匹配字符串最后部分的金额。有些金额以千为单位,例如 1,200.00,有些则只有几百,例如 450.95。字符串看起来像这样“March6March7Globe-Gmovies3dTaguigCity320.00”。

一旦匹配,我只想用匹配的值替换整个字符串。例如

March6March7Globe-Gmovies3dTaguigCity320.00
March6March7Globe-Gmovies3dTaguigCity1,320.00

变成

320.00
1,320.00

为什么我的模式只匹配千位,而不匹配百位?谢谢。

这是我的模式:

(.*)(\d{1}?\,?\d{3}\.\d{2})

答案1

请尝试:(.*?)((\d,)?\d{3}\.\d{2})

此处,(*.?)类似于(.*),但最短(最短匹配字符串)。逗号不必转义。

答案2

  1. 说 毫无意义\d{1}?。如果您想要匹配一位数字,或者不匹配,只需说 即可\d?
  2. 因此您可以使用(.*)(\d?\,?\d{3}\.\d{2})。但这将匹配2019中的。(如果您曾经收到过类似这样的格式错误的输入,City2019.00它也会匹配,243.56中的。)您想要匹配 或 — 您要么有,要么没有。因此请尝试,这将生成(即)一个组并将 应用于它。City,234.56NNN.NNN,NNN.NNN,(.*)((\d\,)?\d{3}\.\d{2})\d\,N,?

相关内容