测试非空组捕获

时间:2014-05-09 02:32:08

标签: python regex

初学蟒蛇问题。

我想学习简单的python语法来测试非空的Group捕获。

这个例子并不重要,我想要的是学会看非空捕获

我试过这个

subj = 'abc123 bbb22 cc'
rgx = re.compile(r'[a-z]+(\d+)?')
for match in re.finditer(rgx,subj):
    print (match.group(1))

这样,两者为空而非空的第1组:123,22,

好。从这里,你能教我如何:

  • 计算非空G1捕获
  • 打印非空G1捕获

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用if match检查匹配是否为空:

subj = 'abc123 bbb22 cc'
rgx = re.compile(r'[a-z]+(\d+)?')
for match in re.finditer(rgx,subj):
    if match.group(1):
        print (match.group(1))

或者,您可以这样做:

subj = 'abc123 bbb22 cc'
rgx = re.compile(r'[a-z]+(\d+)?')
result = [i for i in re.findall(rgx, subj) if i]
for match in result:
    print (match)