如果有一个字符串正则表达式:匹配只包含一个字母串
海峡= “S23#”
应该匹配,并且
如果str = “WS23%”
它不应该匹配(因为2个字符)
我使用re.search("^[{A-Z}?0-9()*%#+?=:._<>,!/\-]*$", str)
并且它匹配两个字符串
如果有一个字符串正则表达式:匹配只包含一个字母串
海峡= “S23#”
应该匹配,并且
如果str = “WS23%”
它不应该匹配(因为2个字符)
我使用re.search("^[{A-Z}?0-9()*%#+?=:._<>,!/\-]*$", str)
并且它匹配两个字符串
只需删除与字符类中所有大写字母相匹配的模式,并将其放入两个[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)
>>>
^(?!(.*?[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)
谢谢你为我工作 – user3522967 2015-02-24 07:31:40
很高兴它的工作.. – 2015-02-24 07:34:12