Я хочу создать несколько подвыражений в большем регулярном выражении, где каждое подвыражение соответствует чему-то в одном месте на входе или в другом месте, но не в обоих местах, предпочтительно с использованием одной и той же именованной группы на "интересующую область».Например, я хотел бы сопоставить единицы объема в курсиве ниже и в единицах валюты, показанных в полужирном .
- 3,23 USD / гал .
- USD 3,23 дюйма галлонов
- 4,50 CAD / гал
- 1 гал @ USD 3,23
- 10 гал .@ $ 4,50 CAD
Или, в более общем смысле:
- stuffmorestuff XXX moremorestuff
- материал XXX еще материал
где материал и morestuff может быть сложным набором подвыражений.
Кажется, что это возможно при использовании некоторой комбинации
- групповой стек push / pop
- балансировка групп
- осмотр
но я не знаю, как поступить.Это сводится к чередованиям (|
) или множественным проходам с разными выражениями (что, я полагаю, составляет одно и то же)?