【问题标题】:How to use backslash in regex patterns? [duplicate]如何在正则表达式模式中使用反斜杠? [复制]
【发布时间】:2020-05-08 09:01:45
【问题描述】:

简单的正则表达式任务:在字符串中查找 ID(和语言)。

import re

txt = '<OB02 ID="1099367" LANG="FR">'
pattern = r'\\ID="(.*?)\\"'

result = re.findall(pattern, txt)

这会给出一个空列表作为结果。引出问题:

  • 如何在python中正确封装\"?
  • 如何从txt中提取ID和LANG?

【问题讨论】:

标签: python regex backslash


【解决方案1】:

使用 xmlParser 解析 xml 而不是正则表达式。

作为一种解决方法,您可以使用以下正则表达式:

import re

txt = '<OB02 ID="1099367" LANG="FR">'
pattern = 'ID="([^"]*)'

result = re.findall(pattern, txt)

如前所述,这是一个坏主意,因为如果有人现在开始使用单引号或添加 cmets,这将中断。

【讨论】:

  • 这也是我的第一选择。但不适用于此字符串(恕我直言,没有正确的 XML)。但是,如果您找到 xml.etree.ElementTree 可以处理此问题的方法,我们将非常欢迎。
猜你喜欢
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 2023-03-15
  • 2015-01-24
  • 1970-01-01
相关资源
最近更新 更多