我有一个文本,其中的数字包含点:
文本304.33.44.52.03.001文本
我要捕获包含字符串的数字:
304.33.44.52.02.03.001
以下正则表达式将捕获多个词组:
(\d+\.?)
结果:
304.
33.
44.
...
在一个结果中返回包括点在内的整数的正确语法是什么?
答案 0 :(得分:1)
\d+\.?
匹配1个以上的数字,然后匹配一个可选的.
字符。
您需要使用其中一个
\d+(?:\.\d+)*
或
\d[\d.]*
请参见regex demo
\d+(?:\.\d+)*
模式匹配
\d+
-1个以上数字(?:\.\d+)*
-多次出现.
,然后出现1个以上的数字。 (?:...)
是non-capturing group,用于对2个模式进行分组并在其序列上设置量词。 \d[\d.]*
模式首先匹配一个数字,然后尝试匹配0个或多个数字或.
。
在不支持\d
的正则表达式引擎中,您需要使用更安全的模式,即括号表达式[0-9]
。