如何定义标记化规则

2024-09-28 22:24:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想标记字符串,比如:

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

分为:

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

您可以注意到,空格分隔标记,非字母数字字符不与字母数字字符分组,还有另一个例外:
括在括号内的一切都被视为一个整体。你知道吗

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

有什么想法吗?你知道吗


Tags: 模块字符串name标记reismy字母
1条回答
网友
1楼 · 发布于 2024-09-28 22:24:21

您可以使用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', ';']

相关问题 更多 >