<?php
echo preg_replace( '/( * Version:[ ]+)([0-9.]{6})/', '${1}' . '6.6.6' , ' * Version: 3.1.0' );
我基本上想检测带有版本的行并将其替换为新版本。我不明白为什么它不起作用
这个子表达式...
([0-9.]{6})
。仅当正好有 6 个目标字符时才匹配。但是3.1.0
字符串中只有 5 个(3 位数字,两个点)。
修复它的最简单方法是将该子表达式更改为...
([0-9.]{1,6})
。因此,它最多匹配 6 个字符。我还在这里删除了前面的反斜杠:您不需要转义字符类中的.
符号(它在这里没有任何特殊含义)。