[英]Java regex. How to get 3 different parts of text?
我在Java中有這個很長的字符串
23分之200/ Ne7WoRK / 3045022100d62568e28cb58b4a5308750e63e4690c4538ddc18> a9dc6075d02f7b4f942c4aa0220587350e7db1f4380a36ebb441906833563d32a62c4a> 03cf334295615f981c47e
我要實現的目標是:
競標價格: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 +數字和正斜杠,或者僅匹配正斜杠:
/\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]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.