Python Regex для сопоставления строки как шаблона и возвращаемого числа

У меня есть строки, которые представляют некоторые данные в текстовом файле. Все они имеют следующий формат:

s = 'TheBears      SUCCESS Number of wins : 14'

Все они начинаются с имени, затем пробела и текста «УСПЕХ Количество побед:» и, наконец, количества побед, n1. Есть несколько строк, каждая с другим именем и значением. Я пытаюсь написать программу, которая может анализировать любую из этих строк и возвращать имя набора данных и числовое значение в конце строки. Я пытаюсь использовать для этого регулярные выражения и пришел к следующему:

import re
def winnumbers(s):
    pattern = re.compile(r"""(?P<name>.*?)     #starting name
                             \s*SUCCESS        #whitespace and success
                             \s*Number\s*of\s*wins  #whitespace and strings
                             \s*\:\s*(?P<n1>.*?)""",re.VERBOSE)
    match = pattern.match(s)

    name = match.group("name")
    n1 = match.group("n1")

    return (name, n1)

Пока что моя программа может возвращать имя, но после этого возникают проблемы. У всех есть текст «УСПЕХ, количество побед:», поэтому я подумал, как найти способ сопоставить этот текст. Но я понимаю, что мой метод сопоставления точной подстроки сейчас неверен. Есть ли способ сопоставить всю подстроку как часть шаблона? В последнее время я довольно много читал о регулярных выражениях, но не нашел ничего подобного. Я все еще новичок в программировании и ценю любую помощь.

В конце концов, я воспользуюсь функцией float (), чтобы вернуть n1 как число, но я оставил это, потому что он не может правильно найти число прямо сейчас и вернет только ошибку.

5
задан nhahtdh 12 January 2014 в 05:12
поделиться