1

我在 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 版本号:在“extjs-”之后或在“ext-”之后直到下一个“/”。但是 URL 可能指向其他资源,在这种情况下,正则表达式不应该匹配

4

2 回答 2

1

对于 .net 世界,以下应该有效:

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

命名组也会为您提供准确的版本号。

于 2013-04-24T11:42:27.020 回答
0

如果您使用的正则表达式支持环视,这应该适合您的需要:

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

虽然上述正则表达式可能非常宽松,但以下正则表达式更具体(与我从您的 OP 中猜到的可能格式匹配):

(?<=ext-|extjs-)\d+([.]\d+){0,2}(-(beta|rc)-\d+)?
于 2013-04-24T11:44:18.853 回答