Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将字符串解析为某一点_Android_Regex_Replace - Fatal编程技术网

Android 将字符串解析为某一点

Android 将字符串解析为某一点,android,regex,replace,Android,Regex,Replace,如果我有一个类似下面示例的字符串,如何保持1.23(8752) 例如: Testversion v1.23 (8752), beta v1.02 (458) 我正在尝试使用正则表达式,但到目前为止我运气不好,这只给出1.23: String result = input.replaceAll("[^\\d.]", ""); 您可以使用*?(v\\d+\.\\d+\\s*\(\\d+\\).* 解释 *?(v\\d+\.\\d+\\s*\(\\d+\)..*:*?尽可能少地匹配任何内容 (

如果我有一个类似下面示例的字符串,如何保持1.23(8752)

例如:

Testversion v1.23 (8752), beta v1.02 (458)
我正在尝试使用正则表达式,但到目前为止我运气不好,这只给出1.23:

String result = input.replaceAll("[^\\d.]", "");
您可以使用
*?(v\\d+\.\\d+\\s*\(\\d+\\).*

解释

*?(v\\d+\.\\d+\\s*\(\\d+\)..*
*?
尽可能少地匹配任何内容

  • (v\\d+\.\\d+\\s*\(\\d+\)
    捕获组的开始)

    • v\\d+\.\\d+
      :匹配
      v
      \\d+
      一个或多个数字
      字符,
      \\d+
    • \\s*\\(\\d+\\)
      \\s*
      零个或多个空格,然后
      一个或多个数字
    ).*
    :捕获组结束,
    *
    匹配任何内容,直到行结束


PCRE将是
\d+\.\d+\(\d+\)
,也许它可以帮助您找到解决方案。你也需要把斜杠加倍(\d在我的评论中,你需要写\\d)嗨,你是说replaceAll(\\d+\.\(\\d+\),“)?给我的输出与我的输出完全相同。很抱歉,我无法使用java版本进行测试,因此我尝试使用PHP^^^目前无法为您提供更多帮助,祝您好运!或者可以替换所有(\\d+\.\(\\d+\),“”);(双转义括号)
input.replaceFirst(".*?(v\\d+\\.\\d+\\s*\\(\\d+\\)).*", "$1"); //v1.23 (8752)