У меня есть это регулярное выражение:
(?:(?:AND\sNOT|AND|OR)(?!.*(?:AND\sNOT|AND|OR))\s)(.*)
Я хочу получить последнюю пару ключ: значение, например -
k:v AND k1:v1 AND NOT k2:v2 OR k3:v3
Я хочу, чтобы регулярное выражение соответствовало k3:v3, и оно соответствует, но оно не соответствует ключу:значение в следующей ситуации -
k:v
Мне нужно, чтобы он соответствовал паре ключ: значение, даже если он первый и до этого не было операторов...
update: ключ: значение здесь не проблема, мне нужно, чтобы оно соответствовало всему после последнего оператора
обновление 2: попытался сделать следующее -
(?:(?:AND\sNOT|AND|OR)?(?!.*(?:AND\sNOT|AND|OR))\s)(.*)
(?:(?:AND\sNOT|AND|OR?)(?!.*(?:AND\sNOT|AND|OR))\s)(.*)
не работал
(?:.*(?:AND\sNOT|AND|OR)\s)?(.*)$
- person Srdjan M.   schedule 25.02.2018