如果没有任何相同的连续字母,我的正则表达式应匹配。
例如:
所以我使用这个正则表达式:
/([.])\1{1,}/
但它与我想要的完全相反。如何使匹配正常工作?
答案 0 :(得分:2)
\b(?!\w*(\w)\1)\w+\b
var r = /\b(?!\w*(\w)\1)\w+\b/g
var s = "ploplir ploppir"
console.log(s.match(r))

\b
断言位置为单词边界(?!\w*(\w)\1\w*)
否定前瞻确保后续内容不匹配
\w*
匹配任意数量的字符(\w)
将单词字符捕获到捕获组1 \1
匹配最近与第一个捕获组匹配的文本\w+
匹配一个或多个单词字符\b
断言位置为单词边界答案 1 :(得分:1)
也许您可以使用lookarounds检查字符串中是否没有连续的字母:
<强>解释强>
^
(?!
.*
(.)
之后,使用群组参考(?=\1)
\1
后面没有相同的字符.*