如何在PHP中使用preg_replace或preg_match移动子字符串?

时间:2018-10-15 13:17:52

标签: preg-replace preg-match

我想找到一个子字符串并将其移到字符串中而不是替换(例如,将其从字符串的开头移动到结尾)。

ID

我通过以下代码做到这一点

'THIS the rest of the string' -> 'the rest of the string THIS'

使用一个正则表达式应该有一种更简便的方法。

1 个答案:

答案 0 :(得分:1)

您可以使用

$re = '/^(THIS)\b\s*(.*)/s';
$str = 'THIS the rest of the string';
$result = preg_replace($re, '$2 $1', $str);

请参见regex demoPHP demo

详细信息

  • ^-字符串的开头
  • (THIS)-第1组(从替换模式中用$1引用):THIS
  • \b-单词边界(如果不需要整个单词,可以将其删除)
  • \s*-0多个空格(如果始终至少有一个空格,请使用\s+并删除\b,因为它将变得多余)
  • (.*)-第2组(替换模式中用$2引用):字符串的其余部分(s修饰符也允许.匹配换行符)。