检查string是否匹配模式

我如何检查一个string是否匹配这个模式?

大写字母,数字,大写字母,数字…

例如,这些将匹配:

A1B2 B10L1 C1N200J1 

这些不会('^'指向问题)

 a1B2 ^ A10B ^ AB400 ^ 
 import re pattern = re.compile("^([AZ][0-9]+)+$") pattern.match(string) 

请尝试以下操作:

 import re name = ["A1B1", "djdd", "B2C4", "C2H2", "jdoi","1A4V"] # Match names. for element in name: m = re.match("(^[AZ]\d[AZ]\d)", element) if m: print(m.groups()) 
 import re import sys prog = re.compile('([AZ]\d+)+') while True: line = sys.stdin.readline() if not line: break if prog.match(line): print 'matched' else: print 'not matched' 

单行: re.match(pattern, string)

 >>> if re.match('hello[0-9]+', 'hello1'): #no need of re.compile() ... print('Yes') ... Yes 

如果你没有在上下文中使用,那么你必须用bool函数来评估它

 >>> bool(re.match('hello[0-9]+', 'hello1')) True 

然而,如果Python的string类包含这样的方法,那将是非常棒的。

 >>> 'hello123'.regex('hello[0-9]+') True 
  import re ab = re.compile("^([AZ]{1}[0-9]{1})+$") ab.match(string)
import re ab = re.compile("^([AZ]{1}[0-9]{1})+$") ab.match(string) 

我相信应该适用于大写,数字模式。

正则expression式使这容易…

A和Z之间只能匹配一个字符

\d+将匹配一个或多个数字

()分组的东西(也返回的东西…但现在只是想到他们分组)

+select1或更多