我有两个表达式,它们应该是有效的,不能被识别出来

时间:2012-05-18 00:46:33

标签: python regex

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))

1 个答案:

答案 0 :(得分: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]+))")

它正在寻找字符串中的空格,而不是那里。