Я следующее содержимое файла, и я стараюсь, чтобы соответствовать рег пояснено ниже:Matching не многострочный регулярное выражение
-- file.txt (doesn't match single/in-line text) --
test On blah more blah wrote:
blah blah blah
blah blah
blah
---------------
Если я прочитал содержимое файла сверху в строку и попытаться соответствовать " на ... писал:»часть я не могу получить матч:
// String text = <file contents from above>
Pattern PATTERN = Pattern.compile("^(On\\s(.+)wrote:)$");
Matcher m = PATTERN.matcher(text);
if (m.find()) {
System.out.println("Never gets HERE???");
// TODO: Strip out all characters after the match and any \s or \n before
}
по существу я хочу следующий вывод:
-- file2.txt --
test
---------------
классный, спасибо за ответ. это то, что я определенно ищу ... теперь, когда я получаю матч, как я могу заменить все, кроме «теста» в этом случае? Я попробовал text = m.replaceAll (""), но это заменяет все. – JaJ
Если вы хотите сохранить «тест» (и другие несогласованные строки), используйте «m.replaceAll (« $ 1 »)'. '$ 1' будет расширен до первой сопоставимой группы. – halfbit
спасибо, поэтому, если я просто хочу сохранить тест, должен ли я использовать то, что возвращается на m.group (1), или есть способ, которым я могу включить replaceAll («)? –
JaJ