【发布时间】:2016-10-07 14:24:17
【问题描述】:
我知道这可能是一个非常简单的问题,但我正在努力在 python 中拆分一个字符串。我的正则表达式有这样的组分隔符:
myRegex = "(\W+)"
我想把这个字符串解析成单词:
testString = "This is my test string, hopefully I can get the word i need"
testAgain = re.split("(\W+)", testString)
结果如下:
['This', ' ', 'is', ' ', 'my', ' ', 'test', ' ', 'string', ', ', 'hopefully', ' ', 'I', ' ', 'can', ' ', 'get', ' ', 'the', ' ', 'word', ' ', 'i', ' ', 'need']
这不是我所期望的。我希望该列表包含:
['This','is','my','test']......etc
现在我知道这与我的正则表达式中的分组有关,我可以通过删除括号来解决这个问题。 但是我怎样才能保留括号并得到上面的结果呢?
抱歉这个问题,我已经阅读了关于 regex spliting with groups 的官方 python 文档,但我仍然不明白为什么我的列表中有空格
【问题讨论】:
-
为什么要保留这些括号(捕获组)?
-
你的意思是你还想使用捕获组?试试
myRegex = r"\s*([^\w\s])\s*"