匹配正则表达式的所有单词的列表
问题内容:
假设我有一些字符串:“ Lorem ipsum dolor sit amet”我需要一个长度超过3的所有单词的列表。我可以使用正则表达式吗?
例如
pattern = re.compile(r'some pattern')
result = pattern.search('Lorem ipsum dolor sit amet').groups()
结果包含“ Lorem”,“ ipsum”,“ dolor”和“ amet”。
编辑:
我的意思是只能包含字母和数字。
问题答案:
>>> import re
>>> myre = re.compile(r"\w{4,}")
>>> myre.findall('Lorem, ipsum! dolor sit? amet...')
['Lorem', 'ipsum', 'dolor', 'amet']
请注意,在所有字符串均为Unicode的Python 3中,这也会找到使用非ASCII字母的单词:
>>> import re
>>> myre = re.compile(r"\w{4,}")
>>> myre.findall('Lorem, ipsum! dolör sit? amet...')
['Lorem', 'ipsum', 'dolör', 'amet']
在Python 2中,您必须使用
>>> myre = re.compile(r"\w{4,}", re.UNICODE)
>>> myre.findall(u'Lorem, ipsum! dolör sit? amet...')
[u'Lorem', u'ipsum', u'dol\xf6r', u'amet']