2015-02-24 138 views

回答

0

只需删除与字符类中所有大写字母相匹配的模式,并将其放入两个[0-9()%#+?=:._<>,!/-]*模式之间即可。

re.match(r"^[0-9()%#+?=:._<>,!/-]*[A-Za-z][0-9()%#+?=:._<>,!/-]*$", st) 

例子:

>>> s= "S23#" 
>>> s1 = "WS23%" 
>>> re.match(r"^[0-9()%#+?=:._<>,!/-]*[A-Za-z][0-9()%#+?=:._<>,!/-]*$", s) 
<_sre.SRE_Match object; span=(0, 4), match='S23#'> 
>>> re.match(r"^[0-9()%#+?=:._<>,!/-]*[A-Za-z][0-9()%#+?=:._<>,!/-]*$", s1) 
>>> 
+0

谢谢你为我工作 – user3522967 2015-02-24 07:31:40

+0

很高兴它的工作.. – 2015-02-24 07:34:12

0
^(?!(.*?[A-Z]){2})[{A-Z}?0-9()%#+?=:._<>,!/-]+$ 

,如果你想匹配整个string.See演示尝试this.Also使用re.match

https://regex101.com/r/aI4rA5/2

re.match("^(?!(.*?[A-Z]){2})[{A-Z}?0-9()%#+?=:._<>,!/-]+$", str)

相关问题