我想找到一个子字符串并将其移到字符串中而不是替换(例如,将其从字符串的开头移动到结尾)。
ID
我通过以下代码做到这一点
'THIS the rest of the string' -> 'the rest of the string THIS'
使用一个正则表达式应该有一种更简便的方法。
答案 0 :(得分:1)
您可以使用
$re = '/^(THIS)\b\s*(.*)/s';
$str = 'THIS the rest of the string';
$result = preg_replace($re, '$2 $1', $str);
请参见regex demo和PHP demo。
详细信息
^
-字符串的开头(THIS)
-第1组(从替换模式中用$1
引用):THIS
\b
-单词边界(如果不需要整个单词,可以将其删除)\s*
-0多个空格(如果始终至少有一个空格,请使用\s+
并删除\b
,因为它将变得多余)(.*)
-第2组(替换模式中用$2
引用):字符串的其余部分(s
修饰符也允许.
匹配换行符)。