我试图将类似hello world123的标记化为helloworld123
我认为,我有两部分代码是必需的,但无法将它们组合到适当的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/

10-16 18:27