如何匹配python regexp中的字母数字字符?

时间:2016-01-09 14:42:17

标签: python regex

我想从文本中获取所有单词,包括unicode字符,不包括连字符或下划线或任何其他非字母数字字符。

即。我想要这样的东西:

>>> getWords('John eats apple_pie')
['John', 'eats', 'apple', 'pie']
>>> getWords(u'André eats apple-pie')
[u'André', u'eats', u'apple', u'pie']

使用

getWords = lambda text: re.compile(r'[A-Za-z0-9]+').findall(text)

它适用于第一个示例,但不适用于第二个示例,反之亦然:

getWords = lambda text: re.compile(r'\w+', re.UNICODE).findall(text)

1 个答案:

答案 0 :(得分:1)

在这种情况下,您可以使用str.isalnum()代替RegEx:

getWords = lambda x: ''.join(i if i.isalnum() else ' ' for i in x).split()