我需要匹配所有这些开始标记:
<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)
但不是这些:
<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)
我想出了这个,并希望确保我做对了.我只抓住了a-z.
<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)
我相信它说:
/,然后我有这个权利吗?更重要的是,你怎么看?
如何使用PHP进入嵌套大括号?
例:
{{ text1 {{text2 text3 {{text4}} text5}} }}
Run Code Online (Sandbox Code Playgroud)
应该输出
1- text1 {{text2 text3 {{text4}} text5}}
2- text2 text3 {{text4}} text5
3- text4
Run Code Online (Sandbox Code Playgroud) 我有以下正则表达式:
/\{\s?joomla-tag\s+(.*<+.+>+.*)\s?\}/is
Run Code Online (Sandbox Code Playgroud)
和以下代码:
$regex = "/\{\s?joomla-tag\s+(.*<+.+>+.*)\s?\}/is";
$replace = '<div class="someclass">$1</div>';
$text = preg_replace( $regex, $replace, $text );
Run Code Online (Sandbox Code Playgroud)
但是,不幸的是,它无法匹配以下代码(尽管如此):
.... many html lines .......
<p>123{joomla-tag Lore<strong>m</strong> ip</p>
<p>sum dolor sit amet}</p>
.... many html lines .......
Run Code Online (Sandbox Code Playgroud)
请参阅真实示例: http ://pastebin.com/WSQyrmxd
怎么了:正则表达还是其他什么?你能告诉你正确的变体吗?在RegExr中,一切都很顺利,但不是在PHP中.
在本地服务器上,我只是在preg_replace之后得到NULL
编辑: 最后我找到了一个解决方案:(谢谢,sg3s,一个想法) http://www.pelagodesign.com/blog/2008/01/25/wtf-preg_replace-returns-null/