按引号解析。您甚至可以使用正则表达式来查找每个键/值对,假设每个值都在引号中。我唯一的问题是,如果值包含嵌入引号,则规则是什么?(它们是否使用“\”之类的转义?无论如何,这目前在下面没有考虑到......)
例如:
(\w+)="([^"]*)"
Run Code Online (Sandbox Code Playgroud)
这甚至会给你组 #1 和 #2,可分别用于提供键和值。
使用 Java 的方法循环运行它Matcher.find()
,直到找到所有对。
示例代码:
String input = "TX=\"0000000000108000001830001\" FI=\"\" OS=\"8\" CI=\"QU01SF1S2032\" AW=\"SSS\" SA=\"1525 Windward Concourse\"";
Pattern p = Pattern.compile("\\s*(\\w+)=\"([^\"]*)\"\\s*");
Matcher m = p.matcher(input);
while(m.find()){
System.out.println(m.group(1));
System.out.println(m.group(2));
}
Run Code Online (Sandbox Code Playgroud)
输出:
TX
0000000000108000001830001
FI
OS
8
CI
QU01SF1S2032
AW
SSS
SA
1525 Windward Concourse
Run Code Online (Sandbox Code Playgroud)