匹配正则表达式的所有单词的列表 [英] List of all words matching regular expression

查看:29
本文介绍了匹配正则表达式的所有单词的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一些字符串:Lorem ipsum dolor sat amet"我需要一个长度超过 3 的所有单词的列表.我可以用正则表达式来做吗?

例如

pattern = re.compile(r'some pattern')result = pattern.search('Lorem ipsum dolor sat amet').groups()

结果包含Lorem"、ipsum"、dolor"和amet".

我说的单词只能包含字母和数字.

解决方案

>>>进口重新>>>myre = re.compile(r"\w{4,}")>>>myre.findall('Lorem, ipsum!dolor 坐?amet...')['Lorem', 'ipsum', 'dolor', 'amet']

请注意,在 Python 3 中,所有字符串都是 Unicode,这也会找到使用非 ASCII 字母的单词:

<预><代码>>>>进口重新>>>myre = re.compile(r"\w{4,}")>>>myre.findall('Lorem, ipsum!dolör 坐?amet...')['Lorem', 'ipsum', 'dolör', 'amet']

在 Python 2 中,你必须使用

<预><代码>>>>myre = re.compile(r"\w{4,}", re.UNICODE)>>>myre.findall(u'Lorem, ipsum!dolör 坐?amet...')[u'Lorem', u'ipsum', u'dol\xf6r', u'amet']

Let assume that I have some string: "Lorem ipsum dolor sit amet" I need a list of all words with lenght more than 3. Can I do it with regular expressions?

e.g.

pattern = re.compile(r'some pattern')
result = pattern.search('Lorem ipsum dolor sit amet').groups()

result contains 'Lorem', 'ipsum', 'dolor' and 'amet'.

EDITED:

The words I mean can only contains letters and numbers.

解决方案

>>> import re
>>> myre = re.compile(r"\w{4,}")
>>> myre.findall('Lorem, ipsum! dolor sit? amet...')
['Lorem', 'ipsum', 'dolor', 'amet']

Take note that in Python 3, where all strings are Unicode, this will also find words that use non-ASCII letters:

>>> import re
>>> myre = re.compile(r"\w{4,}")
>>> myre.findall('Lorem, ipsum! dolör sit? amet...')
['Lorem', 'ipsum', 'dolör', 'amet']

In Python 2, you'd have to use

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

这篇关于匹配正则表达式的所有单词的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆