Android 将字符串解析为某一点
如果我有一个类似下面示例的字符串,如何保持1.23(8752) 例如: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+\)..*:*?尽可能少地匹配任何内容 (
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*
一个或多个数字(
)
:捕获组结束,).*
匹配任何内容,直到行结束*
\d+\.\d+\(\d+\)
,也许它可以帮助您找到解决方案。你也需要把斜杠加倍(\d在我的评论中,你需要写\\d)嗨,你是说replaceAll(\\d+\.\(\\d+\),“)?给我的输出与我的输出完全相同。很抱歉,我无法使用java版本进行测试,因此我尝试使用PHP^^^目前无法为您提供更多帮助,祝您好运!或者可以替换所有(\\d+\.\(\\d+\),“”);(双转义括号)
input.replaceFirst(".*?(v\\d+\\.\\d+\\s*\\(\\d+\\)).*", "$1"); //v1.23 (8752)