我正在提取标签的嵌套内容。我编写了一个正则表达式,在我的本地机器(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 />
不匹配。
更新:感谢您的建议和回复。
我更新了那个正则表达式,它对我有用。只要您想获得内部内容(嵌套标签和文本),就可以使用此正则表达式。无论您的标签如何排列,无论它有多少属性。
答案 0 :(得分:0)
你必须放在某处,比如:
(?:</$tagname>|/>)