我正在使用 python 的 re.match 函数通过忽略像这样的几个字符来比较两个字符串:
import re
url = "/ChessBoard_x16_y16.bmp/xyz"
if re.match( '/ChessBoard_x.._y..\.bmp', url ):
print("true")
else:
print("false")
问题 #1:输出是 true 但我在这里想要 false 因为 url 在 .bmp 之后有一些额外的东西 问题#2: 我在这里使用了两个点来忽略值 16 (x16 & y16) 但实际上这个值可以包含任意数量的数字,例如 x8, x16, x256 等等 那么我应该怎么做才能忽略这个由任意位数组成的完整值呢?
请您参考如下方法:
尝试正则表达式
'/ChessBoard_x[\d]+_y[\d]+\.bmp$'
一个小演示(也可以尝试 Regex101 )
>>> import re
>>> pat = re.compile('/ChessBoard_x[\d]+_y[\d]+\.bmp$')
>>> url = "/ChessBoard_x162_y162.bmp"
>>> pat.match(url).group()
'/ChessBoard_x162_y162.bmp'
>>> url = "/ChessBoard_x16_y16.bmp/xyz"
>>> pat.match(url).group()
>>> # Does not match
