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

ali*_*ali 1 javascript php regex extract version

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

Avi*_*Raj 5

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

\b\d+(?:\.\d+)*\b
Run Code Online (Sandbox Code Playgroud)
  • \b 在单词字符和非单词字符之间匹配的单词边界.

  • \d+ 匹配一个或多个数字.

  • (?:...)被称为非捕获组.(?:\.\d+)匹配一个点和以下一个或多个数字.(?:\.\d+)*,匹配一个点和以下一个或多个数字零次或多次.*重复前一个标记零次或多次.如果版本号必须包含点,则*将此模式更改(?:\.\d+)*+.+重复前一个令牌一次或多次.

在js中,它会是这样的

> "source-file-1.0.0-stable.zip".match(/\b\d+(?:\.\d+)*\b/)[0]
'1.0.0'
Run Code Online (Sandbox Code Playgroud)