0

我需要帮助编写正则表达式模式来替换我的变量。

用于解析的输入数据
字符串:
/hello/world/1111/2/3/4
/hello/world/2222/2/3/4
/hello/world/3333/2/3/4
/hello/world/3333
/hello /世界/1111

替换值 = 一些

输出
/hello/world/some/2/3/4
/hello/world/some/2/3/4
/hello/world/some/2/3/4
/hello/world/some
/hello/world/some

4

3 回答 3

0
$out = preg_replace("#^/(\w+)/(\w+)/\d{4}(/.*)?$#", "/$1/$2/some$3", $in);

这将为您进行正确的替换,这里有一个简短的解释:

^         start of line
(\w+)     >1 literals
\d{4}     exactly 4 digits
(/.*)?    anything starting with / or nothing at all
$         end of line
于 2013-11-14T15:55:08.297 回答
0

如果输入的数字总是四位数,那么

$input = preg_replace("~/\d{4}(/.*)?$~", "some$1", $input);
于 2013-11-14T15:56:13.120 回答
0

如果它们在您要替换的部分中都有四位数字,请执行以下操作:

$input = preg_replace("/\d{4}/", "some", $input);
于 2013-11-14T15:51:27.693 回答