使用regex查找并排除在否定lookbehind中作为整个单词的html标记

clj7thdc  于 2023-02-05  发布在  其他
关注(0)|答案(2)|浏览(150)

我基本上是试图找到文本中所有的段落(在javascript/jquery中),这些段落还没有被一组定义好的html标记所 Package :

p|h1|h2|h3|h4|h5|h6|blockquote|img|table|iframe

我当前的正则表达式(https://regex101.com/r/O4i2hP/1)已经匹配段落并排除了定义的标记
(.+?(?〈![〈/(p|h1|氢气|h3|h4|h5|h6|块引用|图像|桌|iframe)〉]$))(\n|$)+/克
但我就是不明白,如何只匹配整个标签。
问题是:
(p|h1|氢气|h3|h4|h5|h6|块引用|图像|桌|iframe)〉匹配列表中的单个字符(p|(区分大小写)
因此,正如您从示例中看到的, Package 在<strong>TEXT</strong>等标记中的代码也被排除在外。
我尝试了不同的东西,如字边界\bword\b,但没有得到它的工作。我希望你能帮助。谢谢

o8x7eapl

o8x7eapl1#

This就可以了。
^(?!〈(p|h1|氢气|h3|h4|h5|h6|块引用|图像|桌|iframe)+?〉.〈/\1〉).$

eulz3vhy

eulz3vhy2#

现在我找到了一种可行的方法。标签应该被 Package 在组中而不是字符类中。下面的方法对我很有效:

(.+?(?<!(<\/)(p|h1|h2|h3|h4|h5|h6|blockquote|img|table|iframe)(>)$))(\n|$)+/gm

另请参见:https://regex101.com/r/DC5msM/1

相关问题