寻找ECMAScript
风格的模式以查找所有整数
积极的,如+1
,
负像-1
,
和1
之类的隐含正面
在一行内,如:
0 zero +1 2.2 1.1 -1 -1.1 one 1
和 NOT 多行,例如:
0
zero
+1
1.1
etc, ...
因此,对于此行,模式应匹配:(0 +1 -1 1
)
0 zero +1 2.2 1.1 -1 -1.1 one 1
^ ^^ ^^ ^
基于:
ECMAScript
12346789
应该匹配()
例:
像(?:^\d+|(?!\d)[+-]?\d+(?!\.)|\d+$)
这样的愚蠢模式可以匹配0 +1 -1 1
但它与字符串中的1
不匹配:
0 zero 1 two 2
^ ^
由于(?!\d)
之前的+
和-
标志
答案 0 :(得分:1)
试试这个
(?:^| )[+-]?\d+?(?= |$)
它会做你想要的一切,除了拒绝多线。在ECMAScript正则表达式中不可能拒绝多行,但是在使用这个简单的正则表达式检查上面的正则表达式之前,您可以轻松地测试多行并拒绝它:
[\n\r]+?
注意:您不需要全局运行此模式;你可以在第一场比赛中休息(即第一次突破),所以不要使用g
旗帜。