0

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

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

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

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

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

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

谢谢

4

2 回答 2

1

最简单的答案是使用或:

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

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

于 2013-04-30T08:04:15.543 回答
1

使用交替

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

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

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

于 2013-04-30T08:02:47.543 回答