正则表达式 - 解析 Twig 模板

发布于 2024-11-26 07:41:29 字数 499 浏览 0 评论 0原文

我需要获取 html 页面中所有“标题”属性的值。 我使用树枝模板,因此源代码可以是这样的:

<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>

I need to get value of all "title" attributes in html page.
I use twig templates so source code can be like:

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

I use this code to get title value:

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

but when title has {% func "smth" %} i get next string:

"some {% func "

how to get full string ?

Update: DOM isnt a solution because it will interprete the example link above as

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情魔剑神 2024-12-03 07:41:29

这似乎对我有用:

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

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

This seems to work for me:

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

The problem was that the [^"] blocks any quotes, such as "smth". The closing " in your regex will find the end of your string just fine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文