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

时间:2017-11-24 02:25:58

标签: php regex

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

如何在字符串b

中查找param1='a';param2='b';param3='3';

如果我将字符串替换为此字符串(使用PHP替换)

,我才能找到它
param1='a';
param2='b';
param3='3';

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

1 个答案:

答案 0 :(得分:6)

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

/param2='\K[^']+/

Demo

您匹配param2='然后重新启动全字符串匹配(使用\K以避免使用捕获组),然后匹配1个或多个非单引号字符。我总是在可能的情况下避免使用捕获组,因为它们会降低正则表达式的执行速度,并且会生成输出数组膨胀。

PHP实施:(Demo

$string="param1='a';param2='b';param3='3'";

echo preg_match("/param2='\K[^']+/",$string,$out)?$out[0]:'No matches';

输出:

b