PHP 正则表达式查找版本(点分十进制),如果字符串中存在


PHP regex to find version (dotted decimal) if exists in string

使用 PHP,我需要提取一个版本字符串(点分十进制),如果它存在于给定字符串中,则返回这两个部分。

考虑:

"Foobar R2" 应返回 'Foobar R2' 和 ''

"Foobar R2 12.23

" 应返回 'Foobar R2' 和 '12.23'

"12.2.3.4.5.5

"应返回"和"12.2.3.4.5.5"

对于仅查找版本的问题有很多答案,但我需要字符串的两个部分。

一如既往地感谢。

尝试:

preg_match('/^(.*?)'s*'b((?:'d+(?:'.'d+)*)?)$/', $input, $match);

一种选择是使用preg_match查找版本的众多答案之一并提供PREG_OFFSET_CAPTURE标志。

这样,除了长度之外,您还可以在源字符串中获取匹配的偏移量,因此将输入字符串分解为例如 substr得当。

另一种选择是简单地str_replace带有空字符串的版本,这将留下"其他所有内容"部分。