Python - 正则表达式 - 在单词之前拆分字符串

标签 python regex string split splice

我正在尝试在特定单词之前在 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/

相关文章:

php - 如何替换php中除下划线和句点以外的所有特殊字符?

c++ - FLTK 和连接字符的问题

python - py2app 无法与 MySQLdb 一起使用

python - 从现有列表创建新的列表累积列表

regex - 这个 Perl 正则表达式是什么意思 : m/(. *?) :(. *?)$/g?

python - 如果整个字符串至少包含一个字母,则将整个字符串与空格匹配

C# KeyPress 事件不会将最后一个字符从文本框复制到表单的文本属性

python - 在 for 循环中将值加在一起 ​​(Python)

python - mpi4py:未加载库:/usr/local/lib/libmpi.1.dylib

python - 删除分隔文件中的嵌套换行符?