如下代码,想要匹配出jar包name和version
file = "spring-test-4.3.9.RELEASE.jar"
matchObject = re.match(r'(.*)-(^\d.*\d$)\..*\.jar', file)
怎么调都是错的,非常头痛。
正确写法:
file = "spring-test-4.3.9.RELEASE.jar"
matchObject = re.match(r'(.*)-(\d.*\d)\..*\.jar', file)
原因分析:
^和$用于匹配原字符file的开头和结尾,并不是匹配圆括号中的字符的开头和结尾,对^和$的作用域的理解偏差,导致了这次问题。
结论:
^和$只能出现在pattern的最开头和最结尾,不可出现在中间的任何位置。