Извлечение нескольких значений переменных из одного регулярного выражения - PullRequest
1 голос
/ 17 марта 2019

Я хочу извлечь ID и Имя из одного регулярного выражения, но не могу получить правильный ответ

<a href="/profiles/6635/Name"

Я использовал ниже регулярное выражение

<a href="/profiles/(.*?)/(.*?)"

Ответы [ 2 ]

0 голосов
/ 17 марта 2019

То, что вы используете <a href="/profiles/(.*?)/(.*?)", хорошо для захвата ID и name из <a href="/profiles/6635/Name", потому что ленивый способ (не жадный) (.*?), который вы используете, будет совпадать только между profiles/ и вторым / так же, как при использовании [^\/]+, а затем между / и ", так что, проверьте еще раз, что вы все исправили.

Вам может потребоваться экранировать /, как это \/, поэтому измените его на:

<a href="\/profiles\/(.*?)\/(.*?)"

Это то же самое здесь регулярное выражение DEMO

И если вам нужно убедиться, что с Java-тестером используйте этот инструмент: Java Regex Tester

0 голосов
/ 17 марта 2019

Как подсказывает @ WiktorStribiżew, вы должны исправить свое регулярное выражение на

<a href="/profiles/([^/]+)/([^/]+)"

Но также используйте $1$ и $2$, чтобы получить оба значения в поле шаблона, например

$1$$2$

Сохранит в переменное объединенное значение - 6635Name

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