Использование регулярного выражения Java для получения определенной части каждой строки текстового файла - PullRequest
0 голосов
/ 25 июня 2019

У меня есть текстовый файл, который состоит из нескольких строк "(what I want to grab)", "junk", "junk", "junk", разделенных символами новой строки.Я читаю файл в список строк и пытаюсь использовать регулярные выражения, чтобы распечатать то, что я хочу захватить, но я не могу заставить его работать.

То, как я понимаю регулярные выражения, ^соответствует началу новой строки, \" соответствует первой цитате после ^, . соответствует чему-либо, затем \" соответствует следующей цитате.Чего мне не хватает?

List<String> result = Files.readAllLines(Paths.get("file.txt"));

Pattern pattern = Pattern.compile("^\".\"");

for (int i = 0; i < result.size(); i++)
{
    System.out.println(result.get(i));
    Matcher matcher = pattern.matcher(result.get(i));
    System.out.println(matcher.find());
}

1 Ответ

2 голосов
/ 25 июня 2019

Вот простое регулярное выражение, которое должно решить вашу проблему:

String regex = "(^[\"][^\"]+[\"])";

Это будет соответствовать началу строки, а затем сразу же будет соответствовать одной кавычке.Тогда он будет соответствовать чему угодно кроме кавычки, пока не достигнет единицы.

Другая (возможно, более разборчивая) версия от Аарона в комментариях.

^\"[^\"]+\"

Выбратькоторый вы предпочитаете.

Проверено здесь .

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