【问题标题】:Java searching negative float number in String [duplicate]Java在字符串中搜索负浮点数[重复]
【发布时间】:2020-04-19 09:49:48
【问题描述】:

假设我有一个这样的字符串:

位置:位置[gps 39.549497,-120.328997 hAcc=20 et=+44m40s745ms alt=0.0 vel=0.0 bear=0.0 vAcc=??? sAcc=??? bAcc=??? {Bundle[mParcelledData.dataSize=96]}]

我要提取 39.549497 和 -120.328997

我已尝试使用以下代码:

    Pattern p = Pattern.compile("[0-9]+[.][0-9]+");
    Matcher m = p.matcher(logLat);
    while (m.find()) {
        Log.i("found is", m.group());
    }

但无法得到负数。

【问题讨论】:

标签: java android regex


【解决方案1】:

尝试使用模式:

Location\[gps (-?\d+(?:\.\d+)?),(-?\d+(?:\.\d+)?)

您更新的 Java 代码:

Pattern p = Pattern.compile("Location\\[gps (-?\\d+(?:\\.\\d+)?),(-?\\d+(?:\\.\\d+)?)");
Matcher m = p.matcher(logLat);
while (m.find()) {
    Log.i("found lat,lng: " + m.group(1) + "," + m.group(2));
}

可能为负的浮点数的一般模式是:

-?\d+(?:\.\d+)?

我在上面使用的确切模式也具有仅针对感兴趣的纬度/经度值的上下文(但不是输入中的其他浮点数)。请参阅下面的演示链接。

Demo

【讨论】:

    猜你喜欢
    • 2016-11-15
    • 2012-11-15
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 2017-05-08
    相关资源
    最近更新 更多