Как следует из названия, это вопрос о 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, £
Как мне отредактировать выражение, чтобы включить эту функцию и пропустить вторую запятую?
Заранее спасибо:)