使用regex从文件名中查找文件版本

时间:2015-01-09 13:33:13

标签: javascript php regex version extract

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

1 个答案:

答案 0 :(得分:5)

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

\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'