Регулярные выражения в String.split () - PullRequest
0 голосов
/ 04 ноября 2018

Как следует из названия, это вопрос о Regular Expressions в методе String.split().

В настоящее время я анализирую строки из текстового файла и в ArrayList, используя BufferedReader. Пример одной или двух ложей, включенных в этот текстовый файл:

ExampleOne (EXA), 1,382, $

ExampleTwo (EXA), 1,21, £

То, что ArrayList затем копируется в Array of Strings с именем parts, а затем разделяется с помощью String.split() со следующим выражением: \\s*,\\s*, который правильно удаляет запятые

  for(i=0;i<thing.size();i++) {          
      String[] parts = arrayList.get(i).split("\\s*,\\s*");
  }

parts затем просто разделяется на три отдельных массива - currency, factor и symbol

Который затем выдает вывод как таковой при печати: ExampleOne (EXA) 1.382 $ (с запятыми, которые я хотел).

Тем не менее, я хотел бы также включить выделение следующей части из каждой строки: ExampleOne и (), окружающих EXA - так, чтобы EXA 1.382 $ было выходным.

Шаблон, который я разработал до сих пор, делает это частично: .*\\(|nt[A-Z]|\\)\\s*,\\s*, но оставляет вторую запятую, как видно: EXA 1.382, $, EXA 1.21, £

Как мне отредактировать выражение, чтобы включить эту функцию и пропустить вторую запятую?

Заранее спасибо:)

...