У меня есть содержимое файла в виде строки. Мне нужно получить количество частичных предложений, скажем, "My name is scott" в строке, которая может охватывать строки, например
some content ... "My name is scott" some content ...
some content ... "My name is " +
"scott" some content ...
Было бы здорово, если бы я мог получить две версии, то есть для Firs, чтобы найти данный ввод в одной строке. Во-вторых, можно искать и по строкам?
Вам только нужно сделать это My\\s+name\\s+is\\s+scott




Вы можете использовать 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 ...
Затем посчитайте количество вхождений:
long count = Pattern.compile(Pattern.quote(textToMatche)).matcher(text).results().count();
Pattern p = Pattern.compile(Pattern.quote(textToMatche));
Matcher m = p.matcher(text);
int count = 0;
while (m.find()) {
count += 1;
}
Выход
2
зачем мне pattern.quote, просто Pattern.compile(textToMatche); тоже подойдет?
@scottmiles считает, что ваш ввод содержит точку или скобки, эти символы являются частью синтаксиса регулярного выражения, поэтому я использую Pattern.compile, чтобы избежать этих символов, которые все
что ты уже испробовал?