php正则表达式在字符串中找到'b'param1 ='a'; param2 ='b'; param3 ='3';

plo*_*uzz -2 php regex

我有一个简单的问题,但对我来说很难.

如何b在字符串中查找param1='a';param2='b';param3='3';

我只能找到它,如果我将字符串替换为此(使用PHP替换)

param1='a';
param2='b';
param3='3';
Run Code Online (Sandbox Code Playgroud)

并使用此正则表达式 "/param2='(.*)';/is"

mic*_*usa 6

假设值中没有单引号,这将为您提供整个值.

/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)