有没有办法在Regex的字符串中找到一个站点?例如,用户输入为:
7. + 6.5
有没有办法检测到字符串中有一个不必要的点7,并在不触及6.5中的点时将其删除?
此外,是否有办法检测同一运营商的多次出现,以便将以下内容视为无效:
7 ++++ 5 --- 6
任何提示都将受到高度赞赏。
感谢。
答案 0 :(得分:0)
要检测运算符的多次出现,正则表达式可以
([^\d\s])\1+
使用$1
请参阅链接http://regex101.com/r/lN3wH5/1
var re = /([^\d\s])\1+/gm;
var str = '7 ++++ 5 --- 6 + 5';
var subst = '$1';
var result = str.replace(re, subst);
将产生输出
7 + 5 - 5 +5
可以使用否定的预测.
来匹配单个(?! )
使用正则表达式
\.(?!\d)
匹配的部分可以在http://regex101.com/r/tC7rO6/1
看到修改强>
验证字符串是否包含单个运算符
正则表达式:^\d+(\s*[+-\/*%]\s*\d+)+$
答案 1 :(得分:0)
要仅检查单点,请使用此选项:
(?!(\.\d))([\.])