我正在尝试匹配像2.3.3 Release fhf47fh
这样的版本号,并去掉句点以获得所需的233
结果
用/'d+(?='.)'d+(?='.)'d+/
和preg_match
模式
对这一时期的展望似乎没有如预期的那样奏效。
谢谢!
如果要比较版本,可以去掉空格,然后使用version_compare()
。
如果您只想要数字表示,请使用regex来简单地使用preg_replace()原始版本字符串中的所有非数字。
$version = '2.3.3 Release';
echo preg_replace('/'D+/', '', $version);
这似乎适用于我的所有测试用例。
preg_replace('/^('d+)'.('d+)'.('d+).*$/', '$1$2$3', $version);
我会使用这样的东西:
$pattern = '~'d+(?:'.*'d*)*~';
对于您在问题中提供的字符串:
if (preg_match('~'d+(?:'.*'d*)*~', $version, $matches))
echo $matches[0]; // => 2.3.3
Regex101演示