从url中提取版本标识符



我在JavaScript中有以下url:

bryntum.com/examples-1.2.3/advanced/advanced.html
bryntum.com/doc/1.2.3/foo/bar.html
cdn.sencha.io/ext-3.4.0/ext-all-debug.js
cdn.sencha.io/ext-3.4.0-beta-1/ext-all.js
cdn.sencha.io/extjs-4.1.0-rc-1/ext-all-debug.js
bryntum.com/examplesfor/extjs-4.1.1/foo/bar.html
bryntum.com/library/extjs-4.1.2/ext-all-debug.js
bryntum.com/library/extjs-10.11.21/ext-all-debug.js
bryntum.com/library/extjs-4.1.2/ext-all-this-is-not-ext.js

我需要用regex提取extjs/ext版本号:在'extjs-'或'ext-'之后,直到下一个'/'。但是url可能指向其他资源,在这种情况下,RegExp不应该匹配

对于。net世界,以下应该工作:

ext(js)?-(?<ver>d[^/]+)(?:/)

指定的组也会给你精确的版本号

如果您正在使用的正则表达式支持遍历,那么这应该符合您的需求:

(?<=ext-|extjs-).+?(?=/)

虽然上面的正则表达式可能过于宽松,但下面的正则表达式更具体(匹配我从您的OP中猜测的可能格式):

(?<=ext-|extjs-)d+([.]d+){0,2}(-(beta|rc)-d+)?

最新更新