这是我的正则表达式
(适用[^>] +并[d])/(?一)(?:BR | p)的
这是示例
<r> this is text which I do not want <a> This is what I want!<br>
我只想在&#39;&gt;&#39;之间废弃文字。和&#39;&lt; br或p&#39;
这个正则表达式正是我想要的,但我意识到这需要时间太多。
我在regex调试器上运行它,它花了800多步来检查错误的句子。
我该如何解决?
答案 0 :(得分:1)
您的([^>]+?[<])/?(?!a)(?:br|p)
模式意味着:
([^>]+?[<])
- 在>
以外的第一个<
/?
- 匹配可选的/
符号(?!a)(?:br|p)
- 匹配不以br
开头的p
或a
(因此,前瞻毫无意义)。基本上,它只返回</br>
,<br
或<p
之前的文字。你可以使用
>([^<]+)</?(?:br|p)\b
请参阅regex demo(有效匹配的21个步骤,以及针对不匹配的字符串<r> this is text which I do not want <a> This is what I want!br>
的9个步骤。)
模式详情:
>
- 文字>
([^<]+)
- 捕获与<
<
- 文字<
/?
- 可选的(一个或零个)/
(?:br|p)\b
- br
或p
后跟字边界(在这些值之后必须有非字char)。import re
p = re.compile(r'>([^<]+)</?(?:br|p)\b')
s = "<r> this is text which I do not want <a> This is what I want!<br>"
print(p.findall(s))
答案 1 :(得分:0)