捕获组时插入字符

时间:2014-08-05 08:47:53

标签: regex

我想从给定字符串中选择一个组,并在该组的第5位插入一个字符。

输入字符串:xxx123456789yyy

表达式:^x{3}(?<serialno>\d{5}\d{4})y{3}$

输出(serialno):123456789

现在我希望serialno组包含一个介于5和6之间的'A',这样我就得到'12345A6789'而不是123456789'。角色总是'A',我想在一个正则表达式中执行此操作。 是否可以通过匹配执行此操作,还是必须调用匹配并替换?

1 个答案:

答案 0 :(得分:0)

您无法使用匹配项更改字符串,因此您需要使用preg_replace

$output = preg_replace('/^x{3}(\d{5})(\d{4})y{3}$/', '$1A$2', $input);