Как создать шаблон регулярного выражения Java, который будет соответствовать строке только в определенном месте? - PullRequest
3 голосов
/ 23 февраля 2012

Я хотел бы создать шаблон регулярного выражения, который будет успешно соответствовать , только если строка шаблона не , за которой следует любая другая строка в тестовой строке или входной строке! Вот что я попробовал:

      Pattern p = Pattern.compile("google.com");//I want to know the right format

      String input1 = "mail.google.com";
      String input2 = "mail.google.com.co.uk";

      Matcher m1 = p.matcher(input1);
      Matcher m2 = p.matcher(input2);

      boolean found1 = m1.find();
      boolean found2 = m2.find();//This should be false because "google.com" is followed by ".co.uk" in input2 string

Любая помощь будет оценена!

Ответы [ 4 ]

2 голосов
/ 23 февраля 2012

Вот как можно найти и найти несовпадающую часть.

Вот пример необработанного регулярного выражения в виде интерактивной ссылки на отличный инструмент регулярных выражений

^(.*)google\.com$

^ - соответствует началу строки
(.*) - захватить все в группе до следующего матча
Google - соответствует Google Literal
\. - соответствует символу ., который должен быть экранирован с помощью \
com - соответствует буквально
$ - соответствует концу строки

Примечание: В Java нужно также экранировать \ в литерале String! ^(.*)google\\.com$

2 голосов
/ 23 февраля 2012

Ваш шаблон должен быть google\.com$. Символ $ соответствует концу строки. Подробнее о регулярных выражениях .

1 голос
/ 23 февраля 2012

Вы должны использовать google\.com$. Символ $ соответствует концу строки.

Pattern p = Pattern.compile("google\\.com$");//I want to know the right format

String input2 = "mail.google.com.co.uk";

Matcher m2 = p.matcher(input2);


boolean found2 = m2.find();
System.out.println(found2);

Выход = false

1 голос
/ 23 февраля 2012
Pattern p = Pattern.compile("google\.com$");

Знак доллара означает, что он должен находиться в конце тестируемой строки / строки.Также обратите внимание, что ваша точка будет соответствовать любому символу, поэтому, если вы хотите, чтобы она совпадала только с точкой, вам нужно ее избежать.

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