Я хочу сопоставить одну из коллекции строк с префиксом или суффиксом, например,
the color is red
red is the color
Я хочу сопоставить группы color: red
Итак, моей первой попыткой было очевидное
(?<color>(?:the color is )(red|green|blue)|(red|green|blue)(?: is the color))
Я ожидал, что это будет соответствовать одной группе color: red
, но это соответствует color: the color is red, 2: red
Я также пыталсяс помощью (?>)
атомарного оператора
Я попытался переместить группы префиксов / суффиксов за пределы именованной группы:
(?:the color is )(?<color>red|green|blue)(?: is the color)
Но это будет соответствовать только строкам спрефикс и суффикс, например the color is red is the color
.Может быть, я мог бы использовать операторы lookahead или lookbehind с этим?
Я не могу использовать модификатор (?J)
в качестве используемого мной механизма регулярных выражений (модуль python re
не поддерживает это.