使用 preg_replace_callback 替换与模式匹配的字符串
Replace a string that matches a pattern using preg_replace_callback
我想用给定字符串中的子字符串“XY”替换出现的模式“binary_function([x,y])”。
我用下面的代码让它工作:
// $string is the string to be searched
$string = preg_replace_callback('/binary_function\(\[(\S),(\S)\]\)/', function ($word) {
$result = strtoupper($word[1]) . strtoupper($word[2]);
return $result;
}, $string);
但是,我还希望它用子字符串“X1Y1”和方括号内的任何长度的参数替换“binary_function([x1,y1])”,例如[x11,y12], [var1,var2], 等等
我试过这个:
// $string is the string to be searched
$string = preg_replace_callback('/binary_function\(\[(\S+),(\S+)\]\)/', function ($word) {
$result = strtoupper($word[1]) . strtoupper($word[2]);
return $result;
}, $string);
但是没用。
有人可以帮忙吗?
谢谢。
你可以使用
'/binary_function\(\[([^][\s,]+),([^][\s,]+)]\)/'
正则表达式详细信息
binary_function\(\[
- binary_function([
文本
([^][\s,]+)
- 第 1 组:除 ]
、[
、空格和 ,
[ 之外的任何一个或多个(由于 +
)字符=41=]
,
- 逗号
([^][\s,]+)
- 第 2 组:除 ]
、[
、空格和 ,
[ 之外的任何一个或多个(由于 +
)字符=41=]
]\)
- ])
字符串。
我想用给定字符串中的子字符串“XY”替换出现的模式“binary_function([x,y])”。
我用下面的代码让它工作:
// $string is the string to be searched
$string = preg_replace_callback('/binary_function\(\[(\S),(\S)\]\)/', function ($word) {
$result = strtoupper($word[1]) . strtoupper($word[2]);
return $result;
}, $string);
但是,我还希望它用子字符串“X1Y1”和方括号内的任何长度的参数替换“binary_function([x1,y1])”,例如[x11,y12], [var1,var2], 等等
我试过这个:
// $string is the string to be searched
$string = preg_replace_callback('/binary_function\(\[(\S+),(\S+)\]\)/', function ($word) {
$result = strtoupper($word[1]) . strtoupper($word[2]);
return $result;
}, $string);
但是没用。
有人可以帮忙吗?
谢谢。
你可以使用
'/binary_function\(\[([^][\s,]+),([^][\s,]+)]\)/'
正则表达式详细信息
binary_function\(\[
-binary_function([
文本([^][\s,]+)
- 第 1 组:除]
、[
、空格和,
[ 之外的任何一个或多个(由于+
)字符=41=],
- 逗号([^][\s,]+)
- 第 2 组:除]
、[
、空格和,
[ 之外的任何一个或多个(由于+
)字符=41=]]\)
-])
字符串。