匹配正则表达式的所有单词的列表


问题内容

假设我有一些字符串:“ 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']