正则表达式 - 解析Twig模板

时间:2011-07-25 12:28:43

标签: php regex twig

我需要在html页面中获得所有“title”属性的值。 我使用twig模板,所以源代码可以是:

<a href="#" title="some {% func "smth" %} text">

我使用此代码获取标题值:

/<[a-z]+[^>]*\s+(title|alt)\s*=\s*("[^"]*")/ 

但是当标题有{% func "smth" %}时,我会得到下一个字符串:

"some {% func "

如何获得完整的字符串?

更新: DOM不是解决方案,因为它会将上面的示例链接解释为

<a href="#" title="some {% func " smth text></a>

1 个答案:

答案 0 :(得分:1)

这似乎对我有用:

/<[a-z]+[^>]*\s+(title|alt)\s*=\s*(".*")/ 

问题在于[^"]阻止任何引号,例如"smth"。正则表达式中的结束"会发现你的字符串结束就好了。