繁体   English   中英

在Java中使用分隔符分割复杂的字符串

[英]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()方法做到这一点。 它只会将字符串分成几部分,而不会过滤掉各个组。 相反,您可以使用PatternMatcher

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM