在python中识别“x:…y:…z:…”的正则表达式

2024-09-25 00:23:19 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个字符串的内容格式为“x:…y:…z:…”,“…”代表任何字符exclude':',并且可以包含任意数量的空格,我正在尝试将这样的字符串拆分为['x:…','y:…','z:…'],我如何在python中做到这一点?在

示例字符串:

'name: myname\n\naddress: myaddress1\nmyaddress2\n\nmyadress3\ncontact:mycontact\n'

我想要的是:

^{pr2}$

Tags: 字符串name示例内容数量格式代表字符
2条回答

re.compile('\w+:[^:]*?(?=\w+:|$)')

意义

  1. 将一个或多个单词字符与冒号匹配
  2. 匹配所有内容而不是懒洋洋的冒号
  3. 查找一个或多个单词字符和冒号或行尾

Demo

捕获除:之外的任何字符都没有用,因为它将包括换行符和address。您的实际需求似乎是:匹配所有文本,直到下一行包含冒号的开头。以下是一种方法:

re.split("\n+(?=.*:)", s.strip())

模式的意思是“一组换行符,后跟任何包含冒号的文本”。输入被剥离,这样最后的换行符将不包括在最终结果项中。在

相关问题 更多 >