如何将一个字符串分成两部分,然后将它们以相反的顺序连接起来作为一个新字符串?
How to split a string into two parts then join them in reverse order as a new string?
这是一个例子:
$str="this is string 1 / 4w";
$str=preg_replace(?); var_dump($str);
我想在这个字符串中捕获 1 / 4w
并将这部分移动到字符串的开头。
Result: 1/4W this is string
给我包含捕获的变量。
最后一部分 1 / 4W
可能不同。
例如1 / 4w
可以是 1/ 16W
、 1 /2W
、 1W
或 2w
字符W
可以是大写也可以是小写
如果要捕获子字符串,请使用capture group:
$str = "this is string 1 / 4w"; // "1 / 4w" can be 1/ 16W, 1 /2W, 1W, 2w
$str = preg_replace('~^(.*?)(\d+(?:\s*/\s*\d+)?w)~i', " ", $str);
var_dump($str);
没有看到一些不同的示例输入,似乎第一个子字符串中没有数字。为此,我使用否定字符class来捕获第一个子串,省略分隔符space,然后将字符串的其余部分捕获为第二个子串。这使我的模式非常高效(比 Toto 的模式快 6 倍,并且没有残留的白色 space 字符)。
代码:
$str="this is string 1 / 4w";
$str=preg_replace('/([^\d]+) (.*)/'," ",$str);
var_export($str);
输出:
'1 / 4w this is string'
这是一个例子:
$str="this is string 1 / 4w";
$str=preg_replace(?); var_dump($str);
我想在这个字符串中捕获 1 / 4w
并将这部分移动到字符串的开头。
Result:
1/4W this is string
给我包含捕获的变量。
最后一部分 1 / 4W
可能不同。
例如1 / 4w
可以是 1/ 16W
、 1 /2W
、 1W
或 2w
字符W
可以是大写也可以是小写
如果要捕获子字符串,请使用capture group:
$str = "this is string 1 / 4w"; // "1 / 4w" can be 1/ 16W, 1 /2W, 1W, 2w
$str = preg_replace('~^(.*?)(\d+(?:\s*/\s*\d+)?w)~i', " ", $str);
var_dump($str);
没有看到一些不同的示例输入,似乎第一个子字符串中没有数字。为此,我使用否定字符class来捕获第一个子串,省略分隔符space,然后将字符串的其余部分捕获为第二个子串。这使我的模式非常高效(比 Toto 的模式快 6 倍,并且没有残留的白色 space 字符)。
代码:
$str="this is string 1 / 4w";
$str=preg_replace('/([^\d]+) (.*)/'," ",$str);
var_export($str);
输出:
'1 / 4w this is string'