Preg_replace 包含一部分字符串,但采用另一种格式

Preg_replace with a part of string but in another format

我有一个格式如下的字符串:

$string = 'First\Second\Third';

'First' 和 'Second' 总是相同的,但 Third' 只是一个例子(可以是任何东西,但它们之间有特殊字符 '\')。

我想创建一个这样的字符串:

$string = 'Second_Third';

我尝试使用函数 preg_replace,这是我的代码:

preg_replace(Array('/^First\\/', '/Second\\[^\s]+/'), Array('', '/Second\_[^\s]+/'), $string);

我不知道该怎么做。

10 倍

您可以使用:

$str = preg_replace('/.*?\\(Second)\\(.+)$/', '_');

RegEx Demo

如果您只是在寻找 \,那么您不需要正则表达式。您可以进行常规字符匹配。使用 listexplode 你可以这样做:

list($first, $second) = explode("\", "First\Second\Third");
echo $first . "_" . $second;

注意需要转义\因为是转义字符:>