正则表达式仅在句号之前匹配组

时间:2018-10-09 10:06:04

标签: regex

我想知道my regex怎么了。 我希望(\d+)与句号之前的3组数字匹配。

也就是说,我希望这三个匹配项:123,但不是0

如果我只写\d+,我将得到4个匹配项,但仅在句点之前需要此匹配项,并且将三位数字作为结果。

实现此目标的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以考虑在提前行内匹配数字和/

\d+(?=[/\d]*\.)

请参见regex demo

详细信息

  • \d+-1个以上的数字...
  • (?=[/\d]*\.)-立即,后跟
    • [/\d]*-0个或更多/或数字字符
    • \.-点。

或者,如果您只想匹配在数字右边某处紧跟着.的任何数字,只需使用.*

\d+(?=.*\.)

在这里,仅当后面跟有0+个字符和一个点时,才匹配1+个数字。

请参见another demo

答案 1 :(得分:0)

由于希望您匹配后跟 some 字符的数字,因此您可以简单地使用与以下内容匹配的前瞻:

(\d+)(?=.)

演示:https://regex101.com/r/bFjWoC/3