Создать массив совпадений регулярных выражений (многострочный) - PullRequest
1 голос
/ 21 июля 2011

Я хочу создать массив строки совпадения с регулярным выражением из текста ниже.

.title1
this is a content of title1.
this is also a content of title1.
..title2
this is a content of title2
this is also a content of title2

, и требуемый массив ниже

array[0] = ".title1
this is a content of title1.
this is also a content of title1."

array[1] = "..title2
this is a content of title2
this is also a content of title2"

, а ниже мой код.

ArrayList<String> array = new ArrayList<String>();
Pattern p = Pattern.compile("^\.[\w|\W]+^\.", Pattern.MULTILINE);
Matcher m = p.matcher(textAbove);

if(m.matches()){
  m.reset();
  while(m.find()){
    array.add(m.group());
  }
}

Но с этим кодом массив [0] содержит от ".title1" до "."до ".title2" и не смог получить array [1], так как m.find () не совпадает, и когда я использую ^\.[\w|\W]+ вместо приведенного выше шаблона регулярного выражения, array [0] содержит все.Как я могу получить этот массив?Я не придерживаюсь регулярных выражений, любое решение приветствуется.

1 Ответ

1 голос
/ 21 июля 2011

Вы довольно близки - попробуйте это регулярное выражение вместо:

^\..*?(?=(^\.|\Z))

В Java это будет "

"^\\..*?(?=(^\\.|\\Z))" // escaping the backslashes for java String.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...