【问题标题】:RegEx: Getting multiple strings python正则表达式:获取多个字符串 python
【发布时间】:2019-09-07 04:06:31
【问题描述】:

我正在使用 Python 开发 Markdown 解释器。
我目前在实施链接时遇到问题。
如何使用 Python 正则表达式模块在字符串中查找多个值?
我的代码:

links = re.findall("[[^]]([^])", "Hello [World](example.com) Hello [Mars](example.org)")

我想要的结果应该是

[["World", "example.com"], ["Mars", "example.org]]

【问题讨论】:

标签: python regex markdown


【解决方案1】:

试试这个:

links = re.findall("\[(.+?)\]\((.+?)\)", "Hello [World](example.com) Hello [Mars](example.org)")
links = map(list,links)
print(list(links))

输出:

[['World', 'example.com'], ['Mars', 'example.org']]

【讨论】:

  • \w.+? 是用于捕获部分的一个相对奇怪的选项 - 最好只使用 .+? 而不使用 \w\w 前缀会任意要求捕获的文本以字母、数字或下划线开头......而[!!foo](www.example.com) 是一个完全有效的 Markdown 链接,不会匹配它。
  • 这对于各种极端情况仍然无法正常工作。更好的解决方案是根本不使用正则表达式。
猜你喜欢
  • 1970-01-01
  • 2020-05-05
  • 2021-01-15
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
相关资源
最近更新 更多