Проверьте указанный c набор метасимволов в Java \ $ или \, - PullRequest
0 голосов
/ 13 февраля 2020

Мне нужно проверить указанный c набор специальных символов: \$ или \, присутствует в строке. Пример;

  1) \\ghg$ : invalid
  2) \\ghg\\$ : valid
  3) ghg$ : invalid
  4) \\ghg\\,$ : invalid. Here $ is not escaped 
  5) ghg\\,\\$ : valid

Ниже приведен код,

private static void regexValidation(String text, String pattern) {
        System.out.println(text + " and pattern " + pattern + " used" + ":" + text.matches(pattern) + " with pattern "
                + Pattern.compile(pattern).matcher(text).matches() + " with find "
                + Pattern.compile(pattern).matcher(text).find());
    }

Использовался шаблон pattern = ".*\\$.*";, который не дал ожидаемого результата. Использовал ".*\\B\\$\\B.*", но это также не помогло в 4-м случае. Есть ли способ в java, чтобы мы могли отфильтровать специальный набор символов?

1 Ответ

0 голосов
/ 13 февраля 2020

кажется, что ваше требование не очень ясно:

в соответствии с вашим \$ or \,, тогда \\ghg\\,$ должно соответствовать, поскольку оно содержит \\,, что соответствует \,

поэтому, если ваше требование: match \$ или \,, тогда

  • regex: ((\\\$)|(\\,))
  • результат матча (показать в https://regexr.com ):

, если вы просто хотите проверить соответствие или нет, можете использовать:

  • regex: (((?<=\\)\$)|(\\,))
  • результат:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...