以下を正規表現と一致させる方法は?
string1 = '1.0) The Ugly Duckling (TUD) (10 Dollars)'
string2 = '1.0) Little 1 Red Riding Hood (9.50 Dollars)'
私は次のことを試みています:
groupsofmatches = re.match('(?P<booknumber>.*)\)([ \t]+)?(?P<item>.*)(\(.*\))?\(.*?((\d+)?(\.\d+)?).*([ \t]+)?Dollars(\))?', string1)
問題は、string2に適用すると正常に機能することですが、式をstring1に適用すると、「(TUD)」部分のために「m.group(name)」を取得できません。両方の文字列で機能する単一の式を使用したいと思います。
私が期待する:
booknumber = 1.0
item = The Ugly Duckling (TUD)