使用正则表达式从文件名中查找文件版本

Find version of file from file name with regex

本文关键字:查找 文件 版本 文件名 正则表达式      更新时间:2023-09-26

我想要的很简单。我将使用 JavaScript 或 PHP 从源代码获取文件。当我得到文件名时,它将具有类似于源文件-1.0.0-stable.zip的格式。一段时间后,该文件可能会变为源文件-1.2.0-stable.zip。我想从这个文件名中提取版本。可以用正则表达式完成吗?是否有任何 PHP 函数只能使用字符串和正则表达式来做到这一点?我不想使用其他功能,例如explode(), strpos()或其他功能。

您可以使用以下正则表达式来匹配版本号。

'b'd+(?:'.'d+)*'b
  • 'b单词字符和非单词字符之间匹配的单词边界。

  • 'd+ 匹配一个或多个数字。

  • (?:...) 称为非捕获组。 (?:'.'d+) 匹配一个点和后面的一个或多个数字。 (?:'.'d+)* ,将一个点与后面的一个或多个数字匹配零次或多次。 *重复上一个令牌零次或多次。如果版本号必须包含一个点,则将此模式(?:'.'d+)*中的*更改为 ++重复上一个令牌一次或多次。

在 js 中,它会像

> "source-file-1.0.0-stable.zip".match(/'b'd+(?:'.'d+)*'b/)[0]
'1.0.0'