Как сопоставить только первое вхождение строки между строками, используя RegEx - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь сопоставить только первое вхождение строки между другими символами. Я посмотрел на кучу разных ответов, но независимо от того, что я использую RegEx, результат всегда один и тот же, он не остановится при первом совпадении.

Это содержимое, которое я запускаю через RegEx:

https://test.com/1.php?h1=987654321&charge=1234567890&lang=en&pt=0&w=
https://test.com/1.php?h1=987654321&charge=1234567890&lang=en&pt=0&w=
https://test.com/1.php?h1=987654321&charge=1234567890&lang=en&pt=0&w=
https://test.com/1.php?h1=987654321&charge=1234567890&lang=en&pt=0&w=
https://test.com/1.php?h1=987654321&charge=1234567890&lang=en&pt=0&w=
https://test.com/1.php?h1=987654321&charge=1234567890&lang=en&pt=0&w=

И это мой RegEx:

(?<=;charge=)([^-]+?)(?=&amp;lang=en&amp;pt=0&amp;w=)

Ожидаемый результат:

1234567890

Фактический результат:

1234567890
1234567890
1234567890
1234567890
1234567890
1234567890

RegExr для сценария Представление «Список» в Инструментах должно выводить 123456789 только один раз. Я знаю, что это показывает 1 совпадение, но представление списка показывает 6. Можно ли даже заставить его появиться один раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...