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