Javascript regexp匹配重复多次的字符未流动的字符
我构建这个regexp是为了匹配字母、数字和点Javascript regexp匹配重复多次的字符未流动的字符,javascript,regex,Javascript,Regex,我构建这个regexp是为了匹配字母、数字和点 点仅在未成功重复时使用 例如: something.somethnElse.another.then.something 这是一个匹配,因为点是分开的。 但在以下情况下: something..thensomething 不匹配,因为相邻有一个或多个点 这是我的regexp,请向我推荐它为什么不工作 [a-zA-Z0-9\.]+(?!\.{2,}) 我也试过了 [a-zA-Z0-9\.]+(?![\.]+) 但它们都与成功的点相匹配你很接近
点仅在未成功重复时使用
例如:
something.somethnElse.another.then.something
这是一个匹配,因为点是分开的。
但在以下情况下:
something..thensomething
不匹配,因为相邻有一个或多个点这是我的regexp,请向我推荐它为什么不工作
[a-zA-Z0-9\.]+(?!\.{2,})
我也试过了
[a-zA-Z0-9\.]+(?![\.]+)
但它们都与成功的点相匹配你很接近。您可以使用此正则表达式:
^(?!.*?\.{2})[a-zA-Z0-9.]+$
PS:无需转义字符类内的点您需要使用字符串开头
^
和字符串结尾$
锚定,并将前瞻放在开头
/^(?!.*\.{2})[a-z0-9.]+$/i
首先,表达式应该被锚定,否则它只需要非常小的匹配 另外,你可以把你的表达式想象成一系列字母和数字,它们可以被一个点打断 因此:
请尝试
/^(\w+\)*\w+$/
如果至少有1个点将其他未成功后跟点的单词变为白色,则该操作将失败,但您所说的表达式应锚定是什么意思?表达式锚点的开始和结束?像^
那样,如果不使用,如何减少匹配?谢谢,为什么是抓捕组<代码>(?:)@那不是一个捕获组。。。它是一个用于重复替换的容器:)
/^(?:[a-z0-9]+|\.(?!\.))*$/