BigDaddy
Guest
Регулярное выражение с поведением типа "И/ИЛИ"
Есть строка следующего вида:
MODIFIER KEYWORD1=var1 KEYWORD2=var2 MODIFIER2 KEYWORD3=var3
В этой строке обязательными параметрами есть все параметры, кроме KEYWORD1 и KEYWORD2. В строке может присутствовать или один, или другой или оба.
При этом KEYWORD1 и KEYWORD2 - реально два определенных ключевых слова.
При этом, KEYWORD3 может быть равен KEYWORD1, KEYWORD2 или другому ключевому слову, то-есть может принимать любые значения.
Так вот, проблема - как построить регулярное выражение, которое бы мне вытащило из этой строки все ключевые слова, их значения и модификаторы? Можно ли в принцыпе это реализовать в одном регулярном выражении?
Пробовал варианты типа (KEYWORD1|KEYWORD2)=(\w+) - получаю сам KEYWORD и его значение, но работает только ИЛИ, если оба присутствуют, то один результат теряется... До чего-то более серйозного пока не додумался...
Спасибо.
Есть строка следующего вида:
MODIFIER KEYWORD1=var1 KEYWORD2=var2 MODIFIER2 KEYWORD3=var3
В этой строке обязательными параметрами есть все параметры, кроме KEYWORD1 и KEYWORD2. В строке может присутствовать или один, или другой или оба.
При этом KEYWORD1 и KEYWORD2 - реально два определенных ключевых слова.
При этом, KEYWORD3 может быть равен KEYWORD1, KEYWORD2 или другому ключевому слову, то-есть может принимать любые значения.
Так вот, проблема - как построить регулярное выражение, которое бы мне вытащило из этой строки все ключевые слова, их значения и модификаторы? Можно ли в принцыпе это реализовать в одном регулярном выражении?
Пробовал варианты типа (KEYWORD1|KEYWORD2)=(\w+) - получаю сам KEYWORD и его значение, но работает только ИЛИ, если оба присутствуют, то один результат теряется... До чего-то более серйозного пока не додумался...
Спасибо.