正则开始符^和结束符$巨坑

如下代码,想要匹配出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的最开头和最结尾,不可出现在中间的任何位置。

你可能感兴趣的:(正则表达式)