结合2个正则表达式

时间:2013-04-30 07:58:44

标签: php regex

我正在尝试组合2个正则表达式。

$test = preg_replace('/\[.*?\]/', '', $test);   

我用它来删除括号之间的任何方括号和单词..

$test = preg_replace ('/[\[\]=]+/', '', $test);

我用它从我的字符串中删除任何= []符号。

单独这样做似乎很好,但我想把它们结合起来。 任何想法我怎么能这样做......我尝试过的一切都打破了......

由于

2 个答案:

答案 0 :(得分:1)

使用alternation

$test = preg_replace('/\[.*?\]|[\[\]=]/', '', $test);

这里的排序很重要,因此首先匹配括号及其内容将被删除。只要没有嵌套括号,这应该可以正常工作。

因此,此表达式将匹配\[.*?\] [\[\]=]

答案 1 :(得分:1)

最简单的答案是使用或:

'/\[[^\]]*\]|[\[\]=]+/'

请注意,我还更改了第一个字符串中的内部模式。我不确定那里是否需要反斜杠。