2017-06-20 54 views
3

之間的可選空白所以目前我有以下正則表達式模式,允許我檢測任何字符串包含9個連續相同的字符。正則表達式檢測任何重複的字符,但有

/^.*(\S)\1{9,}.*$/ 

這與像一串完美的作品如下:this a tesssssssssst但是我希望它也發現像這樣的字符串:this a tess sss ssssst(重複字符的數目相同,但有一個可選的空格)

任何想法?

+0

如果多個空間是兩個's's之間? – revo

+0

@revo是的任何數量的空白 –

回答

3

你需要把反向引用到一個組,並添加一個可選的空間進組:

^.*(\S)(?: ?\1){9,}.*$ 

regex demo。如果兩者之間的間隔可能超過1個,請將?替換爲*

.*$部分僅在需要獲得整行匹配時才需要,對於允許部分匹配的方法,您可以使用^.*(\S)(?: ?\1){9,}

如果有任何空格,請用模式中的\s替換空格。

+0

美麗的謝謝! –

+0

進一步的問題,如果你可以:檢測任何字符組合重複9次或更多的時間之間的空格? –

+0

請提供真實數據和預期輸出的例子。 –

0

您可以通過這種方式檢查多個單個字符。
它僅受限於可用捕獲組的數量。

這個檢查1 - 3個字符。

(\S)[ ]*(\S)?[ ]*(\S)?(?:[ ]*(?:\1[ ]*\2[ ]*\3)){9,} 

http://regexr.com/3g709

# 1-3 Characters 
(\S)      # (1) 
[ ]* 
(\S)?      # (2) 
[ ]* 
(\S)?      # (3) 
# Add more here 

(?: 
     [ ]* 
     (?: \1 [ ]* \2 [ ]* \3) 
     # Add more here 
){9,}