我正在尝试在特定单词之前在 python 中拆分字符串。例如,我想在 "path:"
之前拆分以下字符串。
- 在
"path:"
之前拆分字符串 - 输入:
“路径:bte00250 丙氨酸、天冬氨酸和谷氨酸代谢路径:bte00330 精氨酸和脯氨酸代谢”
- 输出:
['path:bte00250 丙氨酸、天冬氨酸和谷氨酸代谢', 'path:bte00330 精氨酸和脯氨酸代谢']
我试过了
rx = re.compile("(:?[^:]+)")
rx.findall(line)
这不会在任何地方拆分字符串。问题在于 "path:"
之后的值将永远无法指定整个单词。有谁知道如何做到这一点?
最佳答案
使用正则表达式来拆分字符串似乎有点矫枉过正:字符串 split()
方法可能正是您所需要的。
无论如何,如果你真的需要匹配一个正则表达式来分割你的字符串,你应该使用re.split()
方法,它根据正则表达式匹配拆分字符串。
另外,使用正确的正则表达式进行拆分:
>>> line = 'path:bte00250 Alanine, aspartate and glutamate metabolism path:bte00330 Arginine and proline metabolism'
>>> re.split(' (?=path:)', line)
['path:bte00250 Alanine, aspartate and glutamate metabolism', 'path:bte00330 Arginine and proline metabolism']
(?=...)
组是一个先行断言:表达式匹配一个空格(注意表达式开头的空格)通过字符串 'path:'
,而不消耗空格后面的内容。
关于Python - 正则表达式 - 在单词之前拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6709067/