2013-04-24 52 views
1

我有如下因素的URL在JavaScript:版本標識符

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 

我需要提取的ExtJS/EXT vesion號碼與正則表達式:後「extjs-」或之後「外部 - 」和最多下一個 '/'。但潛在的URL可以指向一些其他資源,在這種情況下,正則表達式不應該匹配

+0

你應該提到你使用的平臺。正則表達式在不同的平臺上有細微的差異。 – dotNET 2013-04-24 11:44:09

回答

1

對於.NET世界,下面應該工作:

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

命名組會給你確切的版本號太。

0

如果您使用支持lookarounds正則表達式的味道,這應該滿足您的需求:

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

雖然上述正則表達式可能是到多少章法,下面一個更具體的(可能的匹配格式我猜你的OP):

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