【问题标题】:Distinguish /< from < in python在python中区分/<和<
【发布时间】:2016-07-06 09:03:13
【问题描述】:

我有一个模式可以找到这种格式的所有标签 <. :.> 。 从嵌套标签中,我只采用子标签。 这里我需要区分括号()与'/'。 有什么方法可以让我在相同的模式中做到这一点?

例如:输入字符串

<testing this> any text </<this is not a tag>any text<this will fail/>>

输出:

['<testing this>','</<this is not a tag>','<this will fail/>>']

任何建议请告诉我。

【问题讨论】:

  • 看起来很不舒服,就像您正尝试使用正则表达式解析 [X]HTML。 Don't. 使用解析器,这就是它们的用途!
  • 如果你想使用 RegEx,你应该使用 LookBehind。
  • /&lt; 是什么意思?你确定不是&lt;/\&lt;
  • 使用反引号`包围你的代码/未格式化的sn-ps。另外,你原来的正则表达式是什么? `
  • 我更新了输入/输出格式(4 个空格)。但是想要的输出是什么?

标签: regex python-3.x backslash findall


【解决方案1】:

使用这种模式:

(?<!/)<.*?(?<!/)>

(?&lt;!/) 是一个否定的后视,确保每个 &lt;&gt; 的左侧没有斜线,而不实际使用该字符。

Check this pattern out on regex101.com

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 2010-09-27
    • 2013-10-22
    • 2014-06-29
    • 2016-08-02
    相关资源
    最近更新 更多