我正在尝试使用正则表达式来查找以下单词。但是,我无法找到区分字母和相同字母的想法。
例如:
text = ' I am sooo hungryyyy....Grrrh ...... helppp meeeeee '
pattern = re.compile(r"(.)\1{1,}", re.DOTALL)
这种模式不太有用。不知道为什么。
我希望正则表达式匹配sooo
,hungryyyy
,Grrrh
....
等所有字词。这意味着,如果一封信同时重复或相互重复至少2次。
答案 0 :(得分:2)
如果您想要将非空白与连续字符匹配,可以这样做:
>>> import re
>>> text = 'I am sooo hungryyyy....Grrrh ...... helppp meeeeee'
>>> matches = re.findall(r'(\S*?(.)\2+\S*?)', text)
>>> [x[0] for x in matches]
['sooo', 'hungryyyy', '....', 'Grrr', '......', 'helppp', 'meeeeee']
这意味着,如果一封信重复同时或彼此相邻至少2次......
但是,如果您正在寻找单词字符,那么您的模式将会改变:
>>> matches = re.findall(r'(\w*(\w)\2\w*)', text)
>>> [x[0] for x in matches]
['sooo', 'hungryyyy', 'Grrrh', 'helppp', 'meeeeee']
答案 1 :(得分:0)
import re
text = ' I am sooo hungryyyy....Grrrh ...... helppp meeeeee '
for p in re.findall(r'(\w*(\w)\2\w*)', text):
print p
给出:
('sooo', 'o')
('hungryyyy', 'y')
('Grrrh', 'r')
('helppp', 'p')
('meeeeee', 'e')