Я пытаюсь выполнить это регулярное выражение, но я не уверен, как написать условие или из-за жадного поведения регулярного выражения.Regex Or and Greedy
some_text=(?<value>.*)&|some_text=(?<value>.*)$
выше регулярное выражение именно то, что я хочу, но я хотел бы написать лучше тот, который будет выглядеть следующим образом:
some_text=(?<value>.*)(?:&|$)
Но из-за алчности, это один не останавливает значение когда он встречает первый &
, вместо этого он возвращается к концу строки.
Спасибо за помощь
Спасибо за ответ, но это не работает, когда я пытаюсь. И насколько я понимаю, он будет соответствовать значению, содержащему &, если оно существует. Я хочу сопоставить значение, которое НЕ содержит &, но регулярное выражение должно работать только в том случае, если после значения есть либо OR, либо конец строки. Вот пример, который должен соответствовать: 'https: //test.com/#/gg/plop? Ign = vava & some_text = 74381hui1h881 & iuri = 84' Это должно возвращать 74381hui1h881 в качестве значения. – linvi
Нет '' 'не обязательно присутствовать во входной строке. См. Эту демонстрацию regex: https://regex101.com/r/nY7qW1/7 – anubhava
Спасибо, что это сработало, я, должно быть, не ввел правильный ввод, когда я попробовал. Я отвечу на ваш ответ как ответ, но не могли бы вы объяснить мне. Я думаю, что это использует lookahead, но я не уверен. Спасибо – linvi