正则表达式查找在位置

时间:2015-05-16 02:47:14

标签: python regex

我正在尝试使用正则表达式来查找以下单词。但是,我无法找到区分字母和相同字母的想法。

例如:

text = ' I am sooo hungryyyy....Grrrh ...... helppp meeeeee '
pattern = re.compile(r"(.)\1{1,}", re.DOTALL)

这种模式不太有用。不知道为什么。 我希望正则表达式匹配sooohungryyyyGrrrh ....等所有字词。这意味着,如果一封信同时重复或相互重复至少2次。

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')