python findall, group и pipe

x = "type='text'"
re.findall("([A-Za-z])='(.*?)')", x) # this will work like a charm and produce
                                     # ['type', 'text']

Однако моя проблема в том, что я хотел бы реализовать конвейер (чередование), чтобы одно и то же регулярное выражение применялось к

x = 'type="text"' # see the quotes

В принципе, следующее регулярное выражение должно работать, но с findall это приводит к чему-то странному:

([A-Za-z])=('(.*?)')|"(.*?)")

И я не могу использовать ['"] вместо канала, потому что это может закончиться плохими результатами:

value="hey there what's up?"

Теперь, как я могу создать такое регулярное выражение, которое будет применяться к любому из или двойные кавычки? Кстати, не предлагайте парсеры html или xml, так как они меня не интересуют.

0
задан Shaokan 1 August 2011 в 21:57
поделиться