我在java中有这么长的String
200/23 / Nechor / 3045022100计算数量的范围4 08750 4690 x 4538 dds 18>最简单的075 d 02类别的第四个42 x 4的4 0220587350的数字1 P 4380的保险丝441906833563的调用4> 03的剑4295615
我想要达到的目的是:
出价:200
用户名:Ne7WoRK
签名:3045022100d62568e28cb58b4a5308750e63e4690c4538ddc18a9dc6075d02f7b4f942c4aa0220587350e7db1f4380a36ebb441906833563d32a62c4a03cf334295615f981c47e
我需要3个正则表达式来帮助我获得单独的出价值字符串,用户名和签名。我不知道如何实现这一目标。我试图解决这个问题的方法是使用以下正则表达式
\湾* / \ b
但是,此正则表达式匹配整个3个子部分并给出其输出
23分之200/ Ne7WoRK /
我不知道如何创建3个不同的正则表达式,其中:
你可以分开它
String a = "200/23/Ne7WoRK/3045022100d62568e28cb58b4a5308750e63e4690c4538ddc18>a9dc6075d02f7b4f942c4aa0220587350e7db1f4380a36ebb441906833563d32a62c4a>03cf334295615f981c47e";
System.out.println(Arrays.toString(a.split("/")));
结果
[200, 23, Ne7WoRK, 3045022100d62568e28cb58b4a5308750e63e4690c4538ddc18>a9dc6075d02f7b4f942c4aa0220587350e7db1f4380a36ebb441906833563d32a62c4a>03cf334295615f981c47e]
然后做一些其他的工作来获得所需的要求
试试这个:(\d+)\/(?:.+)\/(.+)\/(.+)
它会给你3组包含3个字符串的组。
这个的Java代码是:
Matcher matcher = Pattern.compile("(\d+)\/(?:.+)\/(.+)\/(.+)").matcher(yourString);
if (matcher.find()) {
String bid = matcher.group(1);
String username = matcher.group(2);
String signature = matcher.group(3);
} else {
// Malformed String
}
您可以使用()对表达式进行分组,例如,您有3个分组。
^([\d]*)\/([\d]*)\/([a-zA-Z|0-9]*)
你可以拆分匹配正斜杠,1+数字和正斜杠或只使用alternation正斜杠:
/\d+/|/
例如:
String regex = "/\\d+/|/";
String string = "200/23/Ne7WoRK/3045022100d62568e28cb58b4a5308750e63e4690c4538ddc18>a9dc6075d02f7b4f942c4aa0220587350e7db1f4380a36ebb441906833563d32a62c4a>03cf334295615f981c47e";
System.out.println(Arrays.toString(string.split(regex)));
结果:
[200, Ne7WoRK, 3045022100d62568e28cb58b4a5308750e63e4690c4538ddc18>a9dc6075d02f7b4f942c4aa0220587350e7db1f4380a36ebb441906833563d32a62c4a>03cf334295615f981c47e]