У меня есть это:Java - регулярное выражение для формата чисел прибудете
- 110121 NATURAL 95 1570,40
- 110121 NATURAL 95 1570,40 *
- 41.110 1 х 38,20 крон) [A ] *
- '31.831 261.791 1308,61)
- > 01572 právo SO 17,00
- 1000 кс х 17,00
- 1570,40
Каждая строка этого вывода сохраняется в списке, и я хочу, чтобы получить номер 1570,40
Мои регулярные выражения выглядит следующим образом для этого типа формата
"([1-9][0-9]*[\\.|,][0-9]{2})[^\\.\\d](.*)"
"^([1-9][0-9]*[\\.|,][0-9]{2})$"
У меня есть проблема что 1570,40 на последней строке, если она была основана (вторым регулярным выражением), также 1570,40 (из строки 1570,40 * в конце), но первая строка не основана .. знаете ли вы, где проблема?
Я немного смущен. Какое регулярное выражение вы используете? Первый или второй. И вы только хотите найти последний результат, не так ли? –
Обратите внимание, что '[a | b]' является 'a' или' | 'или' b'. В списках символов '|' is * not * разделитель альтернатив. Поэтому '[.,]' Должен быть тем, что вы хотите. Но для всего, что я могу сказать, второе регулярное выражение должно работать. –
Я использую оба ... У меня есть priceFormats.add ("([1-9] [0-9] * [\\. |,] [0-9] {2}) [^ \\. \\ d ] ") (*.); и priceFormats.add ("^ ([1-9] [0-9] * [\\. |,] [0-9] {2}) $"); ... это список ценовых форматов, а затем для цикла, в который я подаю заявку (int i = 0; i