найти вхождение предложения в строке - PullRequest
0 голосов
/ 20 мая 2018

У меня есть содержимое файла в виде строки.Мне нужно получить количество частичных предложений, скажем, "My name is scott" в строке, которая может охватывать строки, такие как

some content ... "My name is scott"  some content ...

some content ... "My name is " +  
    "scott"  some content ...

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

1 Ответ

0 голосов
/ 20 мая 2018

Вы можете использовать replaceAll для замены этой части разрыва:

" +  
    "

следующим образом:

String text = "some content ... \"My name is scott\"  some content ...\n"
        + "\n"
        + "some content ... \"My name is \" +  \n"
        + "    \"scott\"  some content ...";
String textToMatche = "My name is scott";
text = text.replaceAll("\"\\s*\\+\\s*\n\\s*\"", "");// Note the regex : \"\s*\+\s*\n\s*\"

результат:

some content ... "My name is scott"  some content ...

some content ... "My name is scott"  some content ...

Затем подсчитайте число вхождений:

Версия Java 9+

long count = Pattern.compile(Pattern.quote(textToMatche)).matcher(text).results().count();

До Java 9

Pattern p = Pattern.compile(Pattern.quote(textToMatche));
Matcher m = p.matcher(text);
int count = 0;
while (m.find()) {
    count += 1;
}

Вывод

2

regex demo

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