Javascript 正则表达式-不按顺序匹配重复字符
有没有办法匹配不在序列中的重复字符 假设我正在寻找至少两个6Javascript 正则表达式-不按顺序匹配重复字符,javascript,regex,Javascript,Regex,有没有办法匹配不在序列中的重复字符 假设我正在寻找至少两个6 var string = "61236"; 我只能在序列中找到匹配的零或一个或多个字符 谢谢。试试这个正则表达式: /(.).*?\1/ 下面是一个regexp,它与字符串中后跟相同数字的字符相匹配: /(.)(?=.*?\1)/ 用法: var test = '0612364'; test.match(/(.)(?=.*?\1)/)[0] // 6 演示: 这里有一个匹配,重复至少3次(总共4次以上) 演示:匹配6以及其他6
var string = "61236";
我只能在序列中找到匹配的零或一个或多个字符
谢谢。试试这个正则表达式:
/(.).*?\1/
下面是一个regexp,它与字符串中后跟相同数字的字符相匹配:
/(.)(?=.*?\1)/
用法:
var test = '0612364';
test.match(/(.)(?=.*?\1)/)[0] // 6
演示:
这里有一个匹配,重复至少3次(总共4次以上)
演示:匹配6以及其他6之前的任何内容
!!"61236".match("6.*6")
// returns true
匹配6,直到另一组与第一组相同(即6)
不按顺序且多次出现的字符:
/(.)(.+\1)+/
可能会添加一个惰性限定符,以便在查找反向引用匹配之前,
*
不会一直向右匹配:/(\d)(?=.*1)/
@MikeSamuel Added,谢谢。我似乎无法在正则表达式中添加最大数量的事件。有人有什么想法吗?我尝试了[^\1]而不是.,但这是字符1,尝试了{3,5},但它只与\d匹配.。要匹配最大值,您需要确保*?
不匹配\1
:(?:(?!=\1)。*?
太棒了!它起作用了。非常感谢。该死的,你们跑得太快了。@MikeSamuel我在这期间试过了,但似乎不起作用:也许我犯了一个愚蠢的错误?它们也可以按顺序排列吗?是的。但没必要。那些是什么!!一开始你在干什么?是js吗?@KarlPokus它将匹配返回的值转换为布尔值。如果找到匹配项,则结果数组将转换为true,否则null将转换为false。
!!"61236".match(/(6).*\1/)
// returns true
/(.)(.+\1)+/