非贪婪正则表达式

2024-01-21

我需要像这样获取评论 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);

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


你的问题中的这个表达:

preg_match_all("/(<funcion>)(.*?)(<\/funcion>)/s", $file, $matches);
print_r($matches);

这会起作用,但前提是$file是包含 XML 的字符串;如果是文件名,则必须先获取内容:

preg_match_all("/(<funcion>)(.*?)(<\/funcion>)/s", file_get_contents($file), $matches);

另外,请记住 PCRE 有回溯限制 http://www.php.net/manual/en/pcre.configuration.php#ini.pcre.backtrack-limit当你使用非贪婪模式时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非贪婪正则表达式 的相关文章

  • 为 Zend 应用程序提供数据库处理程序的“正确”方法是什么

    假设您严格遵守某个组织的惯例Zend应用程序 http framework zend com manual en zend application html 您应该在哪里设置数据库处理程序以供应用程序开发人员访问 我知道如何设置ZendDb
  • PHP-将字符串转换为unicode

    我在做这个工作 source mb convert encoding test unicode utf 8 source unpack C source var dump source return array size 8 1 gt in
  • 如何发布数组多维角度js

    我在 angularjs 中有一个数组 示例如下 scope order qty 20 scope order adress Bekasi scope order city Bekasi 这个数组可以用这个代码发布 http method
  • artisan 明确编译返回错误代码 255

    跑步时composer install在我的 laravel 项目中 我收到错误 脚本 php artisan 清晰编译处理返回的 post install cmd 事件 错误代码为 255 关于可能出现的问题有什么建议吗 请注意 comp
  • 在 Laravel 中将自定义/新类文件放在哪里?

    我有关于如何使用 Yelp Fusion API 的 PHP 示例 它用OAuth php file https github com Yelp yelp api blob master v2 php lib OAuth php有几个班级
  • mongodb从不同数据库中选择

    我有大约 200 个 mongodb 数据库 每个数据库都有一个名为 Group 的集合 在该集合中有一个名为 meldingId 的字段 是否可以进行一个 mongodb 查询来查找不同数据库中的所有值 我设法通过 selectDB da
  • 如何在codeigniter中插入具有多个单选名称的单选按钮值?

    我正在尝试使用 codeigniter 进行在线测验 其中有一个针对某些主题的动态测验 用户可以在每个问题中添加问题和多项选择答案 我如何获得每个问题的每个多项选择答案中每个答案的值 p p
  • 如何使用 PHP 从图像文件中读取 Lightroom 关键字?

    我有一个照片社区 www jungledragon com http www jungledragon com 允许用户上传照片 我的平台是 PHP CodeIgniter 作为上传过程的一部分 我已经使用 PHP 读取 EXIF 信息ex
  • 参数编号无效:参数未在[重复]中定义

    这个问题在这里已经有答案了 被困在这里有一段时间了 当我尝试运行代码时收到此错误 警告 PDOStatement execute SQLSTATE HY093 无效参数 number 参数未定义于 Applications XAMPP xa
  • PHP 的同义词库类或 API [编辑]

    TL DR 摘要 我需要一个命令行应用程序 我可以用它来获取同义词和其他相关单词 它需要是多语言的并且跨平台工作 任何人都可以为我推荐一个合适的程序 或者帮助我使用我已经找到的程序吗 谢谢 更长的版本 我的任务是用 PHP 编写一个系统 该
  • 如何获取与我当前所在商店相关的产品所属类别 ID

    我在产品页面上并拥有产品对象 但是当我尝试使用以下方式获取类别 id 时 product gt getCategoryIds or product gt getResource gt getAttribute category ids gt
  • PHP - 当 false 时获取 bool 来回显 false

    以下代码不会打印出任何内容 bool val bool false echo bool val 但下面的代码打印1 bool val bool true echo bool val 有没有更好的打印方法0 or false when boo
  • 多维数组内的移动

    我有一个用表格显示的数组 如何使用用户输入进行移动 目前 0 被分配给每个数组 但我计划为该数组分配其他值 我的问题是 如何使用用户输入在数组内向上 向下 向右 向左移动和对角移动 Array 0 gt Array 0 gt 0 1 gt
  • Laravel 验证规则仅针对字母

    我正在尝试添加验证规则以仅接受信件 我正在使用regex规则 但它仍然不起作用 下面是我的代码 Validate request input this gt validate request name gt required regex p
  • 支持通过 OAuth 进行 Facebook/Twitter 身份验证的 CAS 服务器

    我正在寻找一个支持 Facebook Twitter 通过 OAuth 进行单点登录身份验证的 CAS 服务器 我检查过 JASIG CAS 服务器 但它看起来不支持它们 我的 java web 应用程序基于 Spring Security
  • Laravel nova diffForHumans 日期时间

    我对用户有字段last active 我想用 diffForHumans 或显示时间time from now来自 Moment js 我怎样才能做到呢 现在我只使用 DateTime make Activiy last active gt
  • 获取url,给定的url重定向到

    我从 rss 链接中挖掘数据并获得一堆网址 例如 http feedproxy google com r electricpig 3 qoF8XbocUbE http feedproxy google com r electricpig 3
  • 通过 jQuery 从输入类型=“文件”多个中删除文件

    我在使用 PHP 和 jQuery 上传文件时遇到问题 表单可以一次上传多个图像 这些图像可以在滑块中预览 表单还包含两个字段标题和描述 滑块通过 jQuery 工作 当用户通过单击选择文件来选择多个图像时
  • 递归获取数组的键并创建下划线分隔的字符串

    现在我得到了一个包含某种信息的数组 我需要从中创建一个表 例如 Student Address StreetAddress gt Some Street StreetName gt Some Name Marks1 gt 100 Marks
  • 使用 Laravel 4 验证多个文件上传

    如何在 Laravel 4 中验证上传文件的数组 我已将其设置为允许多个文件 并且已测试这些文件是否存在于 Input file files 数组中 但如何验证每个文件呢 这是我尝试过的 notesData array date gt In

随机推荐

  • 正确的 ARIA 处理面包屑导航

    可以采取哪些措施来提高面包屑菜单的可访问性 类似于 ul class breadcrumbs li a href Home a li li a href news News a li li class unavailable a href
  • Blazor - Web 组件 - WebAssembly - 微前端

    我正在研究微前端并能够使用不同技术构建功能 到目前为止 创建 Web 组件并在 Monolith 上使用它们是我发现的最佳方法 研究创建 Web 组件并在不同服务中提供模块的不同方法是一种有趣的体验 使用 Blazor 查看 WebAsse
  • 为什么添加简单的 SQL 查询作为 Power BI 数据源会阻止本机查询折叠?

    我已经添加了SQL数据源 然后 我没有选择表 而是输入了以下查询 SELECT ID NAME AGE FROM STUDENTS 当我右键单击该步骤时 我看到本机查询选项被禁用 为什么添加简单的 SQL 查询作为 Power BI 数据源
  • MS Access 准备好的语句

    是否可以在 MS Access 中对 VBA 中的本地表执行准备好的语句 如下所示 UPDATE part SET part description WHERE part id 如果是这样 它是如何完成的 Dim db As DAO Dat
  • Java 正则表达式帮助:捕获键值对

    我正在尝试从具有以下形式的字符串中捕获键值对 a0 d235 a1 2314 com1 abcd com2 a b c d 使用来自的帮助这个帖子 https stackoverflow com questions 168171 regul
  • iOS - 循环单元格并检索数据

    抱歉 我对 iOS 开发还很陌生 我有一个UITableView从单个 XiB 笔尖拉出的单元进行设置 我在笔尖中创建了一个开 关开关 并且我试图保存开关的状态viewWillDisappear我拥有的细胞数量 准确地说是 6 个单元 如何
  • C# 中的 MemoryStream Xml 架构验证失败

    这是我的功能 如果将 MemoryStream 传递给 XmlReader 有时它不会验证正确的 xml 文件 我将 XmlDocument 对象存储在内存中 我想根据最终用户提供的 xsd 架构文件对其进行验证 ValidateSchem
  • 如果 .slideDown 超出浏览器底部,如何自动向上滚动页面?

    我有一个表格 当鼠标悬停在行上时 通过 jQuery SlideDown 显示每行的附加信息 当鼠标移开时 信息将通过向上滑动删除 这工作得很好 但是当我将鼠标悬停在页面上的最后一个项目上时 它会滑到浏览器窗口底部下方 如果用户使用鼠标滚轮
  • jar 清单中的绝对路径名与相对路径名

    我想引用固定位置的 jar 文件以供多个可执行 jar 文件使用 而不是在每个可执行文件中包含该 jar 文件 我有以下设置 效果很好 commons math3 3 6 1 jar 存在于目录 testgradle 中 TestGradl
  • 使用寄存器值作为搜索模式

    我希望使用寄存器的内容作为 Vim 中的搜索模式 我想从命令行执行此操作 因此我无法使用
  • Spring - AOP:@within异常:java.lang.IllegalArgumentException:错误引用的类型不是注释类型

    我是 AOP 和 AspectJ 的新手 我正在尝试围绕具有元素类型的自定义注释编写自定义逻辑TYPE 我还想使用注释下的参数在 around 方法内编写自定义逻辑 我收到下面提到的错误 我尝试阅读多个来源 大多数来源都与使用有关 anno
  • 如何在单元格中显示当前用户名?

    在我能找到的大多数在线资源中 通常会告诉我如何在 VBA 中检索此信息 有没有直接的方法可以在单元格中获取这些信息 例如 简单如 ENVIRON User 这没有用 根据下面链接中的说明 执行以下操作 在 VBA 中插入一个新模块并粘贴以下
  • 使用 javamail 发送邮件不起作用

    我正在尝试使用我的 Gmail 地址发送电子邮件 我将 debug 设置为 true 这就是我得到的 DEBUG JavaMail version 1 4 1 DEBUG not loading file System Library Ja
  • 如何使用 heroku CLI 避免使用 --app 选项?

    我厌倦了每次运行时输入应用程序的名称heroku终端中的命令 heroku run rake db migrate app myapp heroku run rake db seed app myapp heroku run rake st
  • 离子闪屏(错误:无法读取上传的图像)

    我正在尝试使用 ionic resources splash 命令 我在资源文件夹以及 ios 和 android 文件夹的根目录中保存了一个 flash png 文件 其尺寸为 2208 x 2208 这是建议的大小 但是当我运行命令时出
  • 类别和继承有什么区别和用途? [复制]

    这个问题在这里已经有答案了 可能的重复 Objective c中继承和类别的区别 https stackoverflow com questions 522341 difference between inheritance and cat
  • JSON 数据到 Web 服务 - 如何定义预期的 JSON 数据

    我正在 PHP 中构建一个 RESTful Web 服务 接受 JSON 作为其有效负载 现在 我的问题是 如何向用户准确描述 JSON 请求的格式 我对 JSON 很陌生 不认为我 100 掌握了 其他用户系统基本上会创建一个包含我需要的
  • 重写 __add__ 方法后出现类型错误

    我想了解如何 add works class MyNum def init self num self num num def add self other return MyNum self num other num def str s
  • ASP.NET Core - 应用程序在发布后未连接到数据库

    我创建了一个带有用户身份验证的简单 ASP Net Core 应用程序 因此所有实体框架都已预加载到 Web 应用程序模板中 它正在连接到我的数据库connectionString位于我的appsettings json文件 与 data
  • 非贪婪正则表达式

    我需要像这样获取评论 php 文件中某些标签内的值 php code this is a comment