如何标记,分割相邻的数字字母?

时间:2019-02-07 07:41:36

标签: python regex

我正在尝试将hello world123之类的令牌标记为helloworld123。 我认为代码中有两个部分,但是不能将它们正确组合在一起tokenize

(?u)\b\w+\b
(?<=\D)(?=\d)|(?<=\d)(?=\D)

1 个答案:

答案 0 :(得分:2)

您可以使用

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

有关正则表达式的详细信息,请参见Parsing scientific notation sensibly?