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

1 回答 1

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]+))")

它正在寻找字符串中不存在的空格。

于 2012-05-18T00:52:11.587 回答