我想要使用String.split()
分割一个简单的XML行,但它无法正常工作。
(<)position x="1" y="2" z="3" /(>) with no parentesis
这是我试图申请的正则表达式:
String regex ="(<)position x=\"|\" y=\"|\" z=\"|\" /(>)";
预期结果是
1 2 3
答案 0 :(得分:1)
您无法使用split()
方法执行此操作。它只会将字符串分成几部分,不会过滤掉各个组。相反,您可以使用Pattern
和Matcher
类
final String input = "<position x=\"1\" y=\"2\" z=\"3\" />";
final String regex = "<position\\sx=\"([0-9]+)\"\\sy=\"([0-9]+)\"\\sz=\"([0-9]+)\"\\s\\/>";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
final String x = matcher.group(1);
final String y = matcher.group(2);
final String z = matcher.group(3);
System.out.println(x + " " + y + " " + z);
}
但是,如果您打算解析XML,我会高度建议使用XML解析器。