以下代码将字符串拆分为单词列表但不包含数字:
txt="there_once was,a-monkey.called phillip?09.txt"
sep=re.compile(r"[\s\.,-_\?]+")
sep.split(txt)
['there', 'once', 'was', 'a', 'monkey', 'called', 'phillip', 'txt']
此代码为我提供了单词和数字,但仍然包含“_”作为有效字符:
re.findall(r"\w+|\d+",txt)
['there_once', 'was', 'a', 'monkey', 'called', 'phillip', '09', 'txt']
我需要在任何一段代码中更改以获得所需的结果:
['there', 'once', 'was', 'a', 'monkey', 'called', 'phillip', '09', 'txt']
答案 0 :(得分:2)
这是一个应该做的快速方法:
re.findall(r"[a-zA-Z0-9]+",txt)
这是另一个:
re.split(r"[\s\.,\-_\?]+",txt)
(你只需要转义连字符,因为它在字符类中有特殊含义)
答案 1 :(得分:2)
对于示例案例,
sep = re.compile(r"[^a-zA-Z0-9]+")
sea.split(txt)
应该有效。要将数字与单词分开,请尝试
re.findall(r"[a-zA-Z]+|\d+", txt)