我有一个简单的问题,但对我来说很难.
如何b在字符串中查找param1='a';param2='b';param3='3';
我只能找到它,如果我将字符串替换为此(使用PHP替换)
param1='a';
param2='b';
param3='3';
Run Code Online (Sandbox Code Playgroud)
并使用此正则表达式 "/param2='(.*)';/is"
假设值中没有单引号,这将为您提供整个值.
/param2='\K[^']+/
Run Code Online (Sandbox Code Playgroud)
您匹配param2='然后重新启动全字符串匹配(\K以避免使用捕获组),然后匹配1个或多个非单引号字符.我总是在可能的情况下避免使用捕获组,因为它们会降低正则表达式的执行速度,并且会生成输出数组膨胀.
PHP实现:( 演示)
$string="param1='a';param2='b';param3='3'";
echo preg_match("/param2='\K[^']+/",$string,$out)?$out[0]:'No matches';
Run Code Online (Sandbox Code Playgroud)
输出:
b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |