php 正则表达式解析复杂规则
本文旨在解决如何在 php 中解析具有复杂规则的文本。
问题描述
用户提供了文本,其中包含多条类似"{list=[my_name_007],[*,name,top],[1=1,2=2,abc=cde],[my name is cc, aa bb cc],[0],[0]}"的规则。目标是提取中括号内的值和 "{list=???}" 和 "{listend}" 之间的文本。
解决方案
要解析提供的文本,需要使用正则表达式来匹配不同的部分。
以下代码利用了 preg_match_all 函数来执行以下匹配:
示例代码
$sstr = '{list=[my_name_007],[*,name,top],[1=1,2=2,abc=cde],[my name is cc, aa bb cc],[0],[0],[nange]}<br /><li>abc,def=</li><br /><li>dsdsdas924049081_1=*34</li><br /><li>nange_nange</li>{listend}'; preg_match_all('/^{list=.+}?n?(.*n?)*.*?{listend}/', $sstr, $armatches); if ($armatches[0]) { preg_match_all('/([[a-za-z0-9_*= ,]+]),?1?/', $sstr, $armatches1); preg_match_all('/<[a-za-z]+>(.*)</[a-za-z]+>/', $sstr, $armatches2); } print_r($armatches); print_r($armatches1[1]); print_r($armatches2[1]);
输出结果
Array ( [0] => Array ( [0] => {list=[my_name_007],[*,name,top],[1=1,2=2,abc=cde],[my name is cc, aa bb cc],[0],[0],[nange]}<br /><li>abc,def=</li><br /><li>dsdsdas924049081_1=*34</li><br /><li>nange_nange</li>{listend} ) ) Array ( [0] => [my_name_007] [1] => [*,name,top] [2] => [1=1,2=2,abc=cde] [3] => [my name is cc, aa bb cc] [4] => [0] [5] => [nange] ) Array ( [0] => abc,def= [1] => dsdsdas924049081_1=*34 [2] => nange_nange )
高效分页:Pagerfanta 助力你的 PHP 项目
Laravel开发中如何提升Model方法的代码提示效率?
在PHP开发中进行代码版本管理与团队协作,可以遵循以下步骤和工具:版本控制系统:Git:这是最常用的分布式版本控制系统。使用Git,你可以跟踪代码的变化,创建分支来进行功能开发,并轻松地合并这些变化。GitHub 或 GitLab:这些平台不仅提供Git仓库托管,还提供了强大的协作工具,如代码审查(Pull Requests)、问题跟踪(Issues)和持续集成(CI/CD)等。分支策略:Git Flow:这是一种常用的分支管理策略,包含主分支(master)、开发分支(develop)、功能分支(fea
Windows下PHP -v命令一闪而过是什么原因?
Composer使用时如何解决PHP配置openssl扩展错误?
MySQL如何使用正则表达式替换特定字符串及其后续内容?