регулярное выражение извлечения данных - PullRequest
0 голосов
/ 24 апреля 2018

Я новичок в регулярных выражениях и провожу последние два дня с проблемой.

У меня есть такая строка:

38_285_4461_186_S2A_MSIL2A_20180119T101331_N0206_R022_T32TQQ_20180119T135441

и мне нужно четыре выражения регулярных выражений для экстракции данных из этой строки в четырех частях:

  1. 38
  2. 285
  3. 4461
  4. 186

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

Пример шаблона строки:

xx_xxx_xxxx_xx_S2...................... (where x is a digit and is variable)

Я попробовал следующее регулярное выражение

^(?:[^_]*\_){1}([^_]*)

редактирование: Мне нужно четыре выражения регулярных выражений, одно для "группы", и результат - полное совпадение. Я не могу использовать Java. Регулярное выражение будет использоваться в геосервере. http://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_time-elevationseries.html

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

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

String[] values = "38_285_4461_186_S2A_MSIL2...".split("_")
// values[0] => 38
// values[1] => 285
// values[2] => 4461
// values[3] => 186
0 голосов
/ 24 апреля 2018

Вы можете использовать

^(\d+)_(\d+)_(\d+)_(\d+)

или просто разделите на _ и используйте части массива.
См. демонстрацию на regex101.com .

...