Я пытаюсь создать регулярное выражение, чтобы соответствовать любому появлению двух или более повторяющихся буквенно-цифровых символов. Ниже регулярное выражение не удается:Почему это регулярное выражение для поиска повторяющихся символов терпит неудачу?
import re
s = '__commit__'
m = re.search(r'([a-zA-Z0-9])\1\1', s)
Но когда я изменить его на это работает:
m = re.search(r'([a-zA-A0-9])\1+', s)
Я очень озадачен, почему это так оно и есть. Может ли кто-нибудь дать представление?
кажется, что вы пропустите a ')': 'm = re.search (r '([a-zA-A0-9]) \ 1+', s)' –
'\ 1 \ 1' означало бы, что символ повторяется три раза (первая группа захвата плюс две обратные ссылки), которая не будет работать, поскольку в вашем примере есть только два последовательных повторяющихся символа. Второй работает, потому что '\ 1 +' означает «один или несколько», что означает, что можно сопоставить. –
@AliNikneshan спасибо за головы, исправил его –