<?php
echo preg_replace('/(\* Version:[ ]+)([0-9\.]{6})/', '${1}' . '6.6.6' , ' * Version: 3.1.0');
我基本上想檢測與版本的行,並將其替換爲新版本。我不知道爲什麼它不工作PHP - 卡住這個正則表達式
<?php
echo preg_replace('/(\* Version:[ ]+)([0-9\.]{6})/', '${1}' . '6.6.6' , ' * Version: 3.1.0');
我基本上想檢測與版本的行,並將其替換爲新版本。我不知道爲什麼它不工作PHP - 卡住這個正則表達式
此子表達式...
([0-9\.]{6})
...只會匹配,如果有確切目標字符。但3.1.0
字符串中只有5個字符(3位數,兩個點)。
解決它最簡單的方法是更改子表達式...
([0-9.]{1,6})
...所以它會匹配高達 6個字符。我也在這裏刪除了前面的反斜槓:你不需要在字符類中轉義.
符號(在這裏它沒有任何特殊的含義)。
要匹配OP數據,它應該是'([0-9。] {5})'http://regex101.com/r/cD7qJ2。否則'([0-9。] {2,})'可能是個好主意。 –
同意。實際上,爲了覆蓋適當的版本,像'[0-9] +(?:\。[0-9])*'看起來更合適。 – raina77ow
洛爾坦克,我猜測我不好。 – redanimalwar
什麼測試數據?測試數據是第三個參數。 – redanimalwar