PHP - 坚持这个正则表达式

时间:2013-12-19 23:19:16

标签: php regex preg-replace

<?php

echo preg_replace( '/( \* Version:[ ]+)([0-9\.]{6})/',  '${1}' . '6.6.6' , ' * Version:           3.1.0' );

我基本上想要检测版本的行并将其替换为新版本。我不明白为什么它不起作用

1 个答案:

答案 0 :(得分:2)

这个子表达式......

([0-9\.]{6})

...仅在完全 6个目标字符时匹配。但是3.1.0字符串中只有5个(3位数,两个点)。

解决此问题的最简单方法是将子表达式更改为...

([0-9.]{1,6})

...所以它匹配最多 6个字符。我在这里也删除了前面的反斜杠:你不需要在一个字符类中转义.符号(这里没有任何特殊含义)。