Python 正则表达式的公式化以匹配js库和版本

Python 正则表达式的公式化以匹配js库和版本,python,regex,python-3.x,Python,Regex,Python 3.x,我正在尝试制定如何编写一个正则表达式来匹配: 我想编写一个正则表达式来匹配诸如:backbone、jquery、bootstrap、yui之类的单词,并匹配javascript库版本,如0.5.0或1.8(如图所示) 如何合理地使用python 3实现这一点?可能是一个起点:使用两个表达式,一个用于版本,一个用于库: import re urls = """https://ajax.cdnjs.com/ajax/libs/backbone.js/0.5.0/backbone-min.js

我正在尝试制定如何编写一个正则表达式来匹配:

  • 我想编写一个正则表达式来匹配诸如:
    backbone
    jquery
    bootstrap
    yui
    之类的单词,并匹配javascript库版本,如0.5.0或1.8(如图所示)

如何合理地使用python 3实现这一点?

可能是一个起点:使用两个表达式,一个用于版本,一个用于库:

import re

urls = """https://ajax.cdnjs.com/ajax/libs/backbone.js/0.5.0/backbone-min.js
https://ajax.cdnjs.com/ajax/libs/backbone-0.5.0.js
https://ajax.cdnjs.com/ajax/libs/jquery-min.js
https://ajax.cdnjs.com/ajax/libs/jquery-1.6.3.js
https://ajax.cdnjs.com/ajax/libs/backbone.js/0.5.0/backbone-min.js
https://stackpath.bootstrapcdn.com/bootstrap/4.0.2/js/jquery.validate.js
http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.js">
http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js
http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js
http://yui.yahooapis.com/3.5.0/build/yui/yui-min.js"""
rx_version = re.compile(r'[-/](\d+[.\w]*)[/.]')
rx_lib = re.compile(r'/([a-z]+)[^/]+$')
for url in urls.split("\n"):
    version, lib = None, None

    # version
    m = rx_version.search(url)
    if m:
        version = m.group(1)

    m = rx_lib.search(url)
    if m:
        lib = m.group(1)

    print(lib, version)
这就产生了

backbone 0.5.0
backbone 0.5.0
jquery None
jquery 1.6.3
backbone 0.5.0
jquery 4.0.2
jquery 1.0rc2
jquery 1.9.2
jquery 1.8
yui 3.5.0

我想你先粘贴了不完整的文本,你可以试着读一下:你的正则表达式可能是这样的:
*(主干jquery bootstrap | yui)。*/(\S+\.js)。*
谢谢@PhxDev-是的,这与库匹配,但不是一个版本,例如
1.6.3
1.0rc2
-任何想法都提供了一个与
jquery.mobile-1.0rc2.min.js
?思想?再次感谢所有的支持