如何定义标记规则

时间:2013-08-24 23:45:21

标签: python regex

我想将字符串标记为:

'my name.is(johnny ,knoxville):'

成:

['my', 'name', '.', 'is', '(johnny ,knoxville)', ':']

正如您所注意到的,空格分隔标记,非字母数字字符不与字母数字字符组合,还有另一个例外:
括号中的所有内容都被视为一个整体标记。

我不确定是否应该使用python RE,一些我不知道的python模块或者像pyparsing这样的外部库

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用re.findall

from re import findall

input = 'my name.is(johnny ,knoxville):\nmore\n;'
results = findall(r'(?:[(][^)]*[)])|\w+|\S', input)
print results

产生结果:

['my', 'name', '.', 'is', '(johnny ,knoxville)', ':', 'more', ';']