输出(var $ DESC)
<p>erster Absatz</p>
<p>zweiter Absatz</p>
正则表达式(PHP)
preg_replace("<([a-z][a-z0-9]*)\b[^>]*>(.*?)</\1>{2}", '', $DESC)
我想只删除第二个p,但这个正则表达式找到了两个。谢谢你的帮助。
答案 0 :(得分:2)
通常我会告诉你使用HTML解析器而不是正则表达式,但由于你的要求是如此具体,这实际上可以通过正则表达式安全地完成。
(?<=<\/p>)\s+<p>[\w ]+<\/p>
https://regex101.com/r/Yqaajy/6
说明:
(?<=<\/p>)
- 确保模式的其余部分前面有一个<\p>
结束标记(正面反面)。
\s+
- 任意数量的空白字符。请注意,如果启用了单线模式,这将无法正确匹配。
<p>[\w ]+<\/p>
- 包含一个或多个单词字符(数字,字母和下划线)和空格的段落块。
答案 1 :(得分:0)
试试这个:
** Script Error: Invalid argument: got