假设我有一些字符串:"Lorem ipsum dolor sit amet"我需要一个长度超过3的所有单词的列表.我可以用正则表达式吗?
例如
pattern = re.compile(r'some pattern')
result = pattern.search('Lorem ipsum dolor sit amet').groups()
Run Code Online (Sandbox Code Playgroud)
结果包含'Lorem','ipsum','dolor'和'amet'.
编辑:
我的意思只能包含字母和数字.
Tim*_*ker 16
>>> import re
>>> myre = re.compile(r"\w{4,}")
>>> myre.findall('Lorem, ipsum! dolor sit? amet...')
['Lorem', 'ipsum', 'dolor', 'amet']
Run Code Online (Sandbox Code Playgroud)
请注意,在Python 3中,所有字符串都是Unicode,这也会找到使用非ASCII字母的单词:
>>> import re
>>> myre = re.compile(r"\w{4,}")
>>> myre.findall('Lorem, ipsum! dolör sit? amet...')
['Lorem', 'ipsum', 'dolör', 'amet']
Run Code Online (Sandbox Code Playgroud)
在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']
Run Code Online (Sandbox Code Playgroud)