你知道为什么这个正则表达式与下面的代码不匹配吗?
$regex = "!<title>(.*?)</title>!i";
代码:
<b:include data='blog' name='all-head-content'/>
<title>
<b:if cond='data:blog.homepageUrl == data:blog.url'>
<data:blog.title/>
<b:else/>
<data:blog.pageName/> » <data:blog.title/>
</b:if>
</title>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'/>
答案 0 :(得分:3)
不要使用正则表达式来解析XML。
您的表达式不起作用,因为点与新行不匹配。添加DOTALL修饰符/.../s
可以解决这个问题,但是您会遇到其他问题,例如贪婪地匹配而不是懒惰。
使用XML解析器会更好。
答案 1 :(得分:0)
以下是我对正确的正则表达式的建议:
(?<=<title>)(.*)(?=</title>)