正如我在帖子中所说,我只是一个正则表达式padawan。
全部从这个帖子开始: Stackoverflow : remove br from inside pre tag
问题是在
中找到<br />
<pre></pre>
个标签
我制作了这种模式:.*?<pre>.*\s?((<br\s*?\/?>\s?).*?){1,}<\/pre>
我回答了这个问题。
自从子问题出现以来,一切都很好:
SUB-Question:如何在<br />
代码中找到任何<pre>
?
我将其翻译成:如何查找具有条件的单词的倍数实例
我的正则表达式的解释:
.*?
- 非贪婪量词:任意数量的任何字符<pre>
- 后跟标记.*\s?
- 任意数量的char +可能的空白字符(<br\s*?\/?>\s?)
- 跟随我们搜索的标签+可能的空白字符((<br \/>\s?).*?){1,}
应该(匹配<br />
+可能的空白字符+任意数量的任何字符数)1或无限次。
我还尝试用*替换{1,} (因为{1,}似乎是贪婪的) - 同样的结果。没有其他想法来实现这个部分&amp;它不起作用。
Regex101:MY attempt
更多的是提高我的知识而不是结果。 希望你能理解我正在做的事情。
最好的考虑,
FALT
P.S。 :我知道(<br\s*?\/?>)
使用选项gm查找字符串中<br /> tags
的所有出现。
答案 0 :(得分:3)
您可以使用以下内容:
<br\s*\/>(?=(?:(?!<\/?pre>)[\s\S])*<\/pre>)
逻辑:匹配br
之后跟有</pre>
的所有<pre>
标签,其间没有</pre>
或{{1}}。