之間的可選空白所以目前我有以下正則表達式模式,允許我檢測任何字符串包含9個連續相同的字符。正則表達式檢測任何重複的字符,但有
/^.*(\S)\1{9,}.*$/
這與像一串完美的作品如下:this a tesssssssssst
但是我希望它也發現像這樣的字符串:this a tess sss ssssst
(重複字符的數目相同,但有一個可選的空格)
任何想法?
之間的可選空白所以目前我有以下正則表達式模式,允許我檢測任何字符串包含9個連續相同的字符。正則表達式檢測任何重複的字符,但有
/^.*(\S)\1{9,}.*$/
這與像一串完美的作品如下:this a tesssssssssst
但是我希望它也發現像這樣的字符串:this a tess sss ssssst
(重複字符的數目相同,但有一個可選的空格)
任何想法?
你需要把反向引用到一個組,並添加一個可選的空間進組:
^.*(\S)(?: ?\1){9,}.*$
見regex demo。如果兩者之間的間隔可能超過1個,請將?
替換爲*
。
.*$
部分僅在需要獲得整行匹配時才需要,對於允許部分匹配的方法,您可以使用^.*(\S)(?: ?\1){9,}
。
如果有任何空格,請用模式中的\s
替換空格。
美麗的謝謝! –
進一步的問題,如果你可以:檢測任何字符組合重複9次或更多的時間之間的空格? –
請提供真實數據和預期輸出的例子。 –
您可以通過這種方式檢查多個單個字符。
它僅受限於可用捕獲組的數量。
這個檢查1 - 3個字符。
(\S)[ ]*(\S)?[ ]*(\S)?(?:[ ]*(?:\1[ ]*\2[ ]*\3)){9,}
# 1-3 Characters
(\S) # (1)
[ ]*
(\S)? # (2)
[ ]*
(\S)? # (3)
# Add more here
(?:
[ ]*
(?: \1 [ ]* \2 [ ]* \3)
# Add more here
){9,}
如果多個空間是兩個's's之間? – revo
@revo是的任何數量的空白 –