我试图将类似hello world123
的标记化为hello
、world
和123
。
我认为,我有两部分代码是必需的,但无法将它们组合到适当的tokenize
中。
(?u)\b\w+\b
(?<=\D)(?=\d)|(?<=\d)(?=\D)
最佳答案
你可以用
import re
s = "hello world123"
print(re.findall(r'[^\W\d_]+|\d+', s))
# => ['hello', 'world', '123']
查看Python demo
图案细节
[^\W\d_]+
-1个或多个字母|
-或\d+
-1+位。请参见regex demo。
奖励:匹配任何字母子串和各种使用的数字
[^\W\d_]+|[-+]?\d*\.?\d+(?:[eE][+-]?\d+)?
见this regex demo。
有关regex的详细信息,请参见Parsing scientific notation sensibly?。
关于python - 如何标记,分割相邻的数字字母?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54568471/