尝试匹配任意数量的逗号分隔的 7 个字符串,其中可以包括数字、_ 和 ?。
x = re.compile(r"^([0-9_\?]{7})(,\1)*$")
>>> x.match("123456?")
<_sre.SRE_Match object at 0x0046C800>
>>> x.match("12345??")
<_sre.SRE_Match object at 0x023483C8>
>>> x.match("1234???")
<_sre.SRE_Match object at 0x0046C800>
>>> x.match("123????")
<_sre.SRE_Match object at 0x023483C8>
>>> x.match("12?????")
<_sre.SRE_Match object at 0x0046C800>
>>> x.match("1??????")
<_sre.SRE_Match object at 0x023483C8>
>>> x.match("???????")
<_sre.SRE_Match object at 0x0046C800>
>>> x.match("???????,1234567")
>>>
^^^^^^^^^^^^^^^^^^^^^^这就是失败的地方
vvvvvvvvvvvvvvvvvvvvvv但是如果我没有 ? 在字符串中
>>> x.match("1234567,1234567")
<_sre.SRE_Match object at 0x023483C8>
我也尝试过:
x = re.compile(r"^([0-9_\\?]{7})(,\1)*$")
但这只是允许它匹配 \ 字符(如预期的那样)。
我的正则表达式有什么问题?