PHP - 坚持使用这个正则表达式


<?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 个字符。我还在这里删除了前面的反斜杠:您不需要转义字符类中的.符号(它在这里没有任何特殊含义)。

最新更新