外部應用程式發送以下行:
U999;U999;$SMS=;client: John Doe; A$ABC12345;, SHA:12345ABCDE
我需要從中提取 2 個值:John Doe 和 12345ABCDE
現在我可以使用正則運算式分別提取這兩個值:
(?=client:(.*?);)為 John Doe
(?=SHA:(.*?)$)為 12345ABCDE
是否可以使用 Pattern 中的一個正則運算式提取這些值并將它們提取為 2 個值的串列?
uj5u.com熱心網友回復:
您可以使用具有兩個捕獲組的模式匹配器:
String input = "U999;U999;$SMS=;client: John Doe; A$ABC12345;, SHA:12345ABCDE";
String pattern = "^.*;\\s*client: ([^;] );.*;.*\\bSHA:([^;] ).*$";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(input);
if (m.find()) {
System.out.println("client: " m.group(1));
System.out.println("SHA: " m.group(2));
}
這列印:
client: John Doe
SHA: 12345ABCDE
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481382.html
