Как можно сопоставить строку, как это в одном регулярном выражении в Java - PullRequest
1 голос
/ 23 марта 2012

Мой ввод String = "любой текст href = \" http://somewhere.com? Id=name@domain.com \ "любой текст"

мне нужно сопоставить всю ссылку http://somewhere.com?id=name@domain.com в группе (1)

, а также совпадение адреса электронной почты, например name@domain.com, в группе (2) в одном регулярном выражении

теперь я использую 2 matcher, один для ссылки, а другой для электронной почты, как показано ниже

Соответствующий адрес электронной почты = MAILS.matcher (строка); Matcher href = LINKS.matcher (строка);

вопрос в том, можно ли его объединить в единое целое для эффективности.

благодарю за продвижение

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Это очень грубо, но вы можете использовать его для начала:

/(http:\/\/[a-z]*\.(com)\?[a-z]+=[a-z]+@[a-z]+\.(com))/i

Вы можете использовать http://rubular.com/ для проверки своих выражений

0 голосов
/ 23 марта 2012
href=\\"(http://[A-Za-z0-9\.-]+\.[A-Za-z]{2,4}\?id=([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Za-z]{2,4}))\\"

\ 1 - ссылка

\ 2 - это идентификатор (адрес электронной почты)

Ссылка может состоять из букв, цифр,. -

Домен верхнего уровня ссылки может быть любой строкой из 2,3 или 4 букв.

Часть адреса электронной почты должна соответствовать 99% всех адресов электронной почты.

Отличное руководство по регулярным выражениям можно найти по адресу http://www.regular -expressions.info / tutorial.html

...