^(?=.*[0-9])(?=.*[A-z])[0-9A-z-]{17}$
Run Code Online (Sandbox Code Playgroud)
应该匹配"17个字母数字字符,也允许使用连字符,必须包含至少一个字母和至少一个数字"
它会正确匹配:
ABCDF31U100027743
Run Code Online (Sandbox Code Playgroud)
并正确拒绝匹配:
AB$DF31U100027743
Run Code Online (Sandbox Code Playgroud)
(以及几乎任何其他非字母数字字符)
但显然会允许:
AB^DF31U100027743
Run Code Online (Sandbox Code Playgroud) 我是一个Python新手,我遇到了检查给定字符串中的简单括号"(",")"是否均匀匹配的练习.
我在这里看到了使用stack命令的例子,我还没有遇到过.所以我尝试了另一种方法.谁能告诉我哪里出错了?
def matched(str):
ope = []
clo = []
for i in range(0,len(str)):
l = str[i]
if l == "(":
ope = ope + ["("]
else:
if l == ")":
clo = clo + [")"]
else:
return(ope, clo)
if len(ope)==len(clo):
return True
else:
return False
Run Code Online (Sandbox Code Playgroud)
想法是将"("和")"堆积到两个单独的列表中,然后比较列表的长度.我还有另一个版本,其中我附加了列表ope和clo与相关的i分别持有(或).
谢谢你的时间!