我一直在試圖寫/找到一個正則表達式,它將識別出連續3個字母/數字的實例。正則表達式來識別3個連續的相同的字母/數字
實施例:
CHAIRMAN AAAAAAAND CHIEF EXECUTIVE OFFICER
這將是一個匹配二/三'**AAAAAAA**'
致謝!
我一直在試圖寫/找到一個正則表達式,它將識別出連續3個字母/數字的實例。正則表達式來識別3個連續的相同的字母/數字
實施例:
CHAIRMAN AAAAAAAND CHIEF EXECUTIVE OFFICER
這將是一個匹配二/三'**AAAAAAA**'
致謝!
謝謝!這一個工作很棒! – user8265973
你是在正確的軌道上,這裏是在Python的例子:
import re
text = "CHAIRMAN AAAAAAAND CHIEF EXECUTIVE OFFICER"
regex = re.compile("([A-Za-z0-9])\\1\\1")
if re.search(regex, text):
print ("yuppers")
本身尋找任何字母或數字的正則表達式,然後什麼字母或數字它匹配兩次。你可以做的東西,如:
[A-Z\d]\\1{2}
,使正則表達式不區分大小寫的呼喚,而不是但這樣我覺得只是拼寫出來更容易閱讀別人走過的路有點正則表達式。
的
echo 'CHAIRMAN AAAAAAAND CHIEF EXECUTIVE OFFICER' | grep -E -o '([A-Z])\1{2,}'
輸出:
AAAAAAA
grep
工具,Unix和Linux
-E
PATTERN是一個擴展的正則表達式(ERE)
-o
示出了線匹配的僅部分PATTERN
([A-Z])
匹配單個字符並且tak ES護理匹配作爲使用該向後引用加上2個或更多相等的回參考
\1{2,}
的3個連續的字符或多個
所以:
echo 'not nn nnn oo ooo tt ttt 123 11 111' | grep -E -o '(\w)\1{2,}'
將匹配:
nnn
ooo
ttt
111
或者:
echo 'not nnn ooo ttt 123 111' | grep -E -o '([[:alpha:]]|[[:digit:]])\1{2,}'
具有相同的輸出。
但由於可能會或可能你不知道\w
比賽像[a-z]
或內置的字符類像[[:alpha:]]
的_
以及因此使用字符類是一個更好的選擇。
我試過幾種不同的東西。這是我試過的最後一個... (?i)(?:([a-zA-Z])\\ 1 {2,})* – user8265973
[(([A-Za-z \ d])\ 2 {2,})'](https:// regex101。 com/r/wMMWJH/1) –