我在以下代码中得到单引号或双引号之间的字符串数据。是否可以将其组合为单个命令或简化?
例子:
STR_NAME = '12345'
STR_NAME = "12345"
码:
$match = "STR_NAME = '12345'";
if (preg_match('/"([^"]+)"/', $match, $m)) {
$val = $m[1]; //found string in double quotes
} else {
if (preg_match("/'([^']+)'/", $match, $m)) {
$val = $m[1]; //found string in single quotes
}
}
输出:
echo $val;
12345
\1
对找到的第一个引用使用反向引用:
preg_match('/(["\'])([^\1]+)\1/', $match, $m);
echo $m[2];
(["\'])
匹配并捕获组1"
或'
([^\1]+)
匹配并捕获第2组中的一个或多个,而不是^
第1组中捕获的
(.+?)
\1
匹配在第1组中捕获的内容,"
或'
无法匹配STR_NAME = "1234'
。
如果数据一致且可预测,那么您也许可以摆脱:
["\']([^"\']+)["\']
要么:
["\'](.+?)["\']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句