![](/img/trans.png)
[英]JavaScript Regular Expression digits not matching string containing single zero
[英]Matching digits and text in a string using regular expression
为什么以下正则表达式中的百分比不匹配
/(^(?:[\d\.]+|first|second|goal))(?:\w+(interval|percent))?/i
输入字符串示例:
10percentRule
/(^(?:[\\ d。] + | first | second | goal))(?: \\ w + (interval | percent))?/ i
w +是这里的问题:您应该使用w *,w +表示1个或多个匹配项,而w *表示0个或多个匹配项; 在您的示例中,第一组捕获数字,然后搜索至少1个字符(w +)间隔或百分比,因此,它不返回任何匹配项。
改用w *,甚至用w *更好? (非贪婪),因此当找到间隔或百分比时,它将停止搜索字符
/(^(?:[\d.]+|first|second|goal))(?:\w*?(interval|percent))?/i
之所以不匹配,是因为\\w+
至少需要1个字符char,介于10
和percent
之间。 用*
( 零个或多个出现 )替换+
( 一个 或多个出现 ):
(^(?:[\d\.]+|first|second|goal))(?:\w*(interval|percent))?
^
它会工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.