PHP正则表达式匹配配对标记但不匹配未配对标记

时间:2012-04-21 07:37:26

标签: php regex

我正在提取标签的嵌套内容。我编写了一个正则表达式,在我的本地机器(WAMP)PHP版本5.3.8,多字节正则表达式(oniguruma)版本 - 4.7.1上完美运行

$tagname = 'mytag';
$pattern = "@<$tagname(?:\s.*?!/)?>(.*?)</$tagname\s*>@s"; 

但是同样的正则表达式在我的实时机器上运行不正常,配置了PHP Version 5.2.11,Multibyte regex(oniguruma)version-4.4.4 和Multibyte正则表达式(oniguruma)backtrack check = on。

请帮助修改此正则表达式,使其在实时网站上开始工作。

此正则表达式匹配<mytag></mytag>且与<mytag />不匹配。

更新:感谢您的建议和回复。

我更新了那个正则表达式,它对我有用。只要您想获得内部内容(嵌套标签和文本),就可以使用此正则表达式。无论您的标签如何排列,无论它有多少属性。

1 个答案:

答案 0 :(得分:0)

你必须放在某处,比如:

(?:</$tagname>|/>)