我想删除括号中的所有内容(<>
和{}
),但|b}
和|URL}
第一个工作模式是{.*[^\\|b]}
第二种工作模式是{(((?!\|URL).)*?)}
第三个<.*>
如何在一次preg_replace()
电话中将它们组合在一起?
不应删除
{jelly3|b}
{jelly3|URL}
{文字列|b}
{文字列|URL}
我已经尝试了{.*[^\\|b]}|{(((?!\|URL).)*?)}|<.*>
但它不起作用,它会删除每个{}。这是链接http://www.phpliveregex.com/p/fVF
答案 0 :(得分:1)
在这种情况下,使用两个负向前瞻似乎有效:
<.*>|\{(?!.*\|URL\})(?!.*\|b\}).*\}
或只有1个否定前瞻:
<.*>|\{(?!.*\|(?:URL|b)\}).*\}