正则表达式 - 如何捕获许多单词

时间:2014-03-06 10:53:42

标签: python regex

我有一个简单的正则表达式问题:

给定一个像"test-class"这样的字符串我应该使用什么正则表达式来获取['test','class'](在python上下文中)

4 个答案:

答案 0 :(得分:2)

你不需要正则表达式;只需使用str.split()

>>> 'test-class'.split('-')
['test', 'class']

正则表达式解决方案仍有待拆分:

>>> import re
>>> re.split(r'-', 'test-class')
['test', 'class']

答案 1 :(得分:1)

"(\w+)"g

示例:http://regex101.com/r/mV9cE2

\w将匹配所有字母数字字符的返回组

g修饰符:全局。所有比赛(首场比赛时不返回)

答案 2 :(得分:0)

([a-zA-Z]*)足以捕获字符串中的每个单词。

答案 3 :(得分:0)

如果您打算使用正则表达式:

简而言之,您定义了一个匹配您想要的东西的正则表达式。然后使用regex.matchall到字符串,然后返回匹配的部分。

import re
$ s = 'hello-world this 32'
$ results = re.findall(r'[a-zA-Z]*', s)
$ print(results)
['hello', '', 'world', '', 'this', '', '', '', '']
# Now we can filter out the empty results.
$ non_empty_results = [result for result in results if result]
$ print(non_empty_results)
['hello', 'world', 'this']