标签: php regex
我有一个简单的问题,但对我来说很难。
如何在字符串b
b
param1='a';param2='b';param3='3';
如果我将字符串替换为此字符串(使用PHP替换)
param1='a'; param2='b'; param3='3';
并使用此正则表达式"/param2='(.*)';/is"
"/param2='(.*)';/is"
答案 0 :(得分:6)
假设值中没有单引号,这将为您提供整个值。
/param2='\K[^']+/
Demo
您匹配param2='然后重新启动全字符串匹配(使用\K以避免使用捕获组),然后匹配1个或多个非单引号字符。我总是在可能的情况下避免使用捕获组,因为它们会降低正则表达式的执行速度,并且会生成输出数组膨胀。
param2='
\K
PHP实施:(Demo)
$string="param1='a';param2='b';param3='3'"; echo preg_match("/param2='\K[^']+/",$string,$out)?$out[0]:'No matches';
输出: