我需要删除括号内的所有内容,包括字符串中的括号,以便为我的搜索引擎处理它
到目前为止我的正则表达式是:
'/[\[{].*[\]}]/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 insensitive”吗?!
提前感谢您的帮助!
最佳答案
您需要在正则表达式中使用 s
(DOTALL) 标志以使 dot
匹配新行。试试这个正则表达式:
/[\[{].*?[\]}]/Us
关于php - 改进正则表达式以去掉括号内容并换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24893957/