Java регулярное выражение \ n - PullRequest
1 голос
/ 26 апреля 2020

Прежде всего, спасибо за чтение этого поста, потому что я действительно нахожусь в конце моей привязи. У меня есть набор шаблонов, и я хочу сопоставлять строку по частям. Скажем, например, у меня есть два шаблона:

Pattern p = Pattern.compile("^([a-zA-Z0-9]*)");
Pattern p2 = Pattern.compile("^(\n)");

Когда я сейчас создаю сопоставление для каждого шаблона, снабжаю его своим вводом, проверяю, находит ли сопоставитель что-то, и если да, заменяет ввод, a \ n никогда не будет найдено.

Когда у меня, например, есть следующая строка в качестве ввода: "Hello \ nworld" Pattern1 найдет что-то, но \ n просто пропущено.

Я даже пытался \\ n как шаблон, но он все еще не работает.

Спасибо, я очень надеюсь, что вы мне поможете!

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

Хорошо, я нашел проблему. Я использовал метод обрезки строк после группировки всего с использованием сопоставителя. И эта функция заменяет не только пробелы, когда строки начинаются / заканчиваются ими, но также \ n.

Тем не менее, спасибо всем, кто пытался помочь!

0 голосов
/ 26 апреля 2020

Попробуйте этот размер

 public static void main(String[] args)
  {

    String testString = "Hello\\nWorld";
    System.out.println(testString);

    Pattern p = Pattern.compile("([a-zA-Z0-9]*)([\\\\]n)([a-zA-Z0-9]*)");
    Matcher m = p.matcher(testString);
    System.out.println(m.matches());
    System.out.println(m.group(1));
    System.out.println(m.group(2));
    System.out.println(m.group(3));
  }

Группа 1 находится перед \ n, группа 2 - \ n, группа 3 - после \ n. Существует два уровня экранирования, если я могу правильно прочитать свой собственный код. Честно говоря, у меня была интуиция, что была проблема с побегом, и я просто добавляла косые черты, пока она не исчезла - сегодня еще не пила кофе.

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