正则表达式提取数据

时间:2018-04-24 13:48:35

标签: regex expression geoserver

我是正常表达的新手,我最近两天都在讨论我的问题。

我有一个这样的字符串:

38_285_4461_186_S2A_MSIL2A_20180119T101331_N0206_R022_T32TQQ_20180119T135441

我需要四个正则表达式来表示来自该字符串的extraxt数据,分为四部分:

  1. 38
  2. 285
  3. 4461
  4. 186
  5. 我有更多的字符串要评估,这个值是可变的,每组只包含数字,但数字是可变的

    字符串模板的示例是:

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

    我尝试了以下正则表达式

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

    编辑: 我需要四个正则表达式,一个用于" group"结果完全匹配。 我不能使用java。正则表达式将用于地理服务器。 http://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_time-elevationseries.html

2 个答案:

答案 0 :(得分:1)

您可以使用

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

或简单地拆分_并使用数组部分 请参阅a demo on regex101.com

答案 1 :(得分:0)

您不需要正则表达式来解决此问题,您可以像这样简单地使用split

String[] values = "38_285_4461_186_S2A_MSIL2...".split("_")
// values[0] => 38
// values[1] => 285
// values[2] => 4461
// values[3] => 186
相关问题