Я не могу найти, как поступить с регулярным выражением, вот пример:
string = "red\\/banana 36 monkey\\/apple 14 red\\/apple 23 red\\/horse 56 bull\\/red 67 monkey\\/red 45 bull\\/shark 89"
Я хочу сделать одиночное регулярное выражение с re.match.group (), которая будет учитывать только такие, как red / xxxx и xxxx / red, и группировать только имена xxxx , а не пары:
Я хочу сделать:
print(match.group("beginningwithred") + " " + match.group("number")
и получите:
banana 36
apple 23
horse 56
, затем выполните:
print(match.group("endingwithred") + " " + match.group("number")
и получите:
bull 67
monkey 45
мой текущий код выглядит так:
iterator = regex.finditer(string)
for match in iterator:
regex = re.compile('red\\\\\\\\/(?P<beginningwithred>banana|apple|horse)|(?P<endingwithred>bull|monkey)\\\\\\\\/red (?P<number>\d\d)')
но это не работает, я не могу использовать |между группами и python HOWTO не помогает .. Я пробовал с {} тоже, включая целые два выражения, но это тоже не работает.Это не должно быть действительно сложно, но я не могу выяснить, в чем дело.