我需要擦除括号内的所有内容,包括字符串中的括号,以便为我的搜索引擎处理它
到目前为止我的正则表达式是:'/[\[{].*[\]}]/U'
这项工作非常好,但如果括号内有换行符
则无效这是一个例子(我花了很多时间来缩小到 * 换行符......):
echo preg_replace('/[\[{].*[\]}]/U', ' ', strip_tags('<h1> how can i </h1>
[portfolioitem img="/fooobarbaoarbaororboabro.jpg" alt="fooobarbaoarbaororboabro" url="fooobarbaoarbaororboabro/" imglink="Lebenslauf »" description="fooobarbaoarbaororboabro" headline="fooobarbaoarbaororboabro" link="Lebenslauf »"]
[/span][span size="6"]
<h1> wipe this away?</h1>
[portfolioitem img="fooobarbaoarbaororboabro.jpg" alt="fooobarbaoarbaororboabro" url="/fooobarbaoarbaororboabro/" imglink="foo" description="foo foo foo
bar foo foo bar foo" headline="fooo" link="Lebenslauf "]
'));
如您所见,第二个“[portfolioitem ...”中有一个换行符 由于某种原因,这个输出:
how can i
wipe this away?
[portfolioitem img="fooobarbaoarbaororboabro.jpg" alt="fooobarbaoarbaororboabro" url="/fooobarbaoarbaororboabro/" imglink="foo" description="foo foo foo
bar foo foo bar foo" headline="fooo" link="Lebenslauf "]
我没有得到任何进一步,我不是正则表达式亲 有谁可以请帮助我使我的正则表达“\ newline不敏感”?!
提前感谢您的帮助!
答案 0 :(得分:3)
您需要在正则表达式中使用s
(DOTALL)标记,以使dot
与新行匹配。试试这个正则表达式:
/[\[{].*?[\]}]/Us