gpt4 book ai didi

php - 非贪婪的正则表达式

转载 作者:行者123 更新时间:2023-12-04 05:08:50 25 4
gpt4 key购买 nike

我需要在这样的注释 php 文件中获取某些标签内的值

php code
/* this is a comment
!-
<titulo>titulo3</titulo>
<funcion>
<descripcion>esta es la descripcion de la funcion 6</descripcion>
</funcion>
<funcion>
<descripcion>esta es la descripcion de la funcion 7</descripcion>
</funcion>
<otros>
<descripcion>comentario de otros 2a hoja</descripcion>
</otros>
-!
*/
some php code

所以你可以看到文件有换行符和重复的标签,比如 <funcion></funcion>我需要得到每一个标签,所以我正在尝试这样的事情:
preg_match_all("/(<funcion>)(.*)(<\/funcion>)/s",$file,$matches);

这个例子适用于换行符,但它很贪婪,所以我一直在搜索并看到这两个解决方案:
preg_match_all("/(<funcion>)(.*?)(<\/funcion>)/s",$file,$matches);
preg_match_all("/(<funcion>)(.*)(<\/funcion>)/sU",$file,$matches);

但它们都不适合我,不知道为什么

最佳答案

尝试使用 [\s\S] , 表示所有空格和非空格字符,而不是 . .此外,无需添加 <funcion></funcion>在比赛小组中。

/<funcion>([\s\S]*?)<\/funcion>/s

另外,请记住,最好的方法是使用 XML parser 解析 XML。 .即使它不是 XML 文档,正如您在评论中提到的,提取应该解析的部分并使用 XML 解析器对其进行解析。

关于php - 非贪婪的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15150175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com