[英]Split complex string with delimiters in Java
我有一个简单的XML行,我想使用String.split()
进行拆分,但无法正常工作。
(<)position x="1" y="2" z="3" /(>) with no parentesis
这是我尝试应用的正则表达式:
String regex ="(<)position x=\"|\" y=\"|\" z=\"|\" /(>)";
预期的结果是
1 2 3
您不能使用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解析器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.