如何在一个正则表达式中组合多个条件 - PHP
How to combine multiple conditions in one regex expression - PHP
这是我的例子http://regexr.com/3dii7
我想删除括号(<>
和 {}
)中的所有内容,除了以 |b}
和 |URL}
结尾的内容
第一个工作模式是{.*[^\|b]}
第二种工作模式是{(((?!\|URL).)*?)}
第三个<.*>
如何在一个 preg_replace()
调用中将它们组合在一起?
不应删除
{jelly3|b}
{jelly3|URL}
{文字列|b}
{文字列|URL}
我试过 {.*[^\|b]}|{(((?!\|URL).)*?)}|<.*>
但它不起作用,它会删除每个 {}。这里是linkhttp://www.phpliveregex.com/p/fVF
在这种情况下,使用两个负前瞻似乎可行:
<.*>|\{(?!.*\|URL\})(?!.*\|b\}).*\}
或者只有 1 个否定前瞻:
<.*>|\{(?!.*\|(?:URL|b)\}).*\}
这是我的例子http://regexr.com/3dii7
我想删除括号(<>
和 {}
)中的所有内容,除了以 |b}
和 |URL}
第一个工作模式是{.*[^\|b]}
第二种工作模式是{(((?!\|URL).)*?)}
第三个<.*>
如何在一个 preg_replace()
调用中将它们组合在一起?
不应删除
{jelly3|b}
{jelly3|URL}
{文字列|b}
{文字列|URL}
我试过 {.*[^\|b]}|{(((?!\|URL).)*?)}|<.*>
但它不起作用,它会删除每个 {}。这里是linkhttp://www.phpliveregex.com/p/fVF
在这种情况下,使用两个负前瞻似乎可行:
<.*>|\{(?!.*\|URL\})(?!.*\|b\}).*\}
或者只有 1 个否定前瞻:
<.*>|\{(?!.*\|(?:URL|b)\}).*\}