2012-05-18 64 views
0
import re 

cards1 = "'F'*4 + 'H'*10"; cards2 = 'FFHH' 
def find_number_of_cards(cards): 
    regexp = re.compile(r"(?P<FandH>[FH]+) | (('F')[*](?P<F>[0-9]+)\s*[+]\s*('H')[*](?P<H>[0-9]+))") 
    result = regexp.search(cards) 
    if result == None: 
     return ("The expression given is not valid.") 
    else: 
     FnH = result.group('FandH') 
     F = result.group('F') 
     H = result.group('H') 
     if FnH == None: 
      return F, H 
     else: 
      return "Blank." 

print(find_number_of_cards(cards1)) 
print(find_number_of_cards(cards2)) 
+0

什么是卡的定义 - >没有人可以在不知道什么是卡的情况下帮助reg-ex。 “find_number_of_cards(cards1)”和“find_number_of_cards(cards2)”的预期输出是什么? –

回答

3

更改此:

regexp = re.compile(r"(?P<FandH>[FH]+) | (('F')[*](?P<F>[0-9]+)\s*[+]\s*('H')[*](?P<H>[0-9]+))") 

这样:

regexp = re.compile(r"(?P<FandH>[FH]+)|(('F')[*](?P<F>[0-9]+)\s*[+]\s*('H')[*](?P<H>[0-9]+))") 

它寻找字符串中的空间,这不在那里。

+0

这工作得很好,谢谢。 –

相关问题