php - 使用正则表达式计算具有某些内容的 php 脚本
问题描述
我正在尝试在包含某些信息的混合 html/php 脚本中列出 php 块。例如文本是:
bla bla <?php echo("hello world") ?> <?php
echo($info["xx"])
?> bla and bla
bla bla <?php
echo($info["yy"])
?> bla bla and bla
我想列出包含“$info”文本的 php 块。预期结果必须是:
<?php
echo($info["xx"])
?>
和
<?php
echo($info["yy"])
?>
我试过/<\?((.|\n)*)\?>/g
了,但首先它不搜索 $info 并将所有字符串从 firs php 返回到最后一个 php 块。
解决方案
您可以使用
'/<\?php\s(?:(?!<\?php\s|\$info).)*?\$info.*?\?>/s'
查看正则表达式演示
<\?php\s
-<?php
和一个空格(?:(?!<\?php\s|\$info).)*?
- 任何不开始的字符,0 次或更多次<?php
+ 空格或$info
字符串.*?
- 任何 0+ 个字符,尽可能少\?>
- 一个?>
子串。
推荐阅读
- symfony - 带有 URL 参数和注入服务的 Symfony 控制器
- android - 如何根据他们的数量,水平和垂直地制作recyclerview布局视图?
- node.js - 如何在 nodejs express 应用程序中使用nested-subfloders 路由?
- python - 试图制作一个检查字符串的算法,然后输出最长的子字符串
- python - 如何在 TreeView 上设置初始排序
- apache-kafka - 手动关闭旧的 Kafka 事务
- android - 聚焦字段时未触发 Xamarin Forms BACK BUTTON
- java - 无法在 Eclipse 2019-03 中执行测试
- javascript - 单击另一个 div 打开列表下拉列表
- ssas - 在 MDX 中运行总计