繁体   English   中英

如何在Java中使用String.split()时保留分隔符?

[英]How to preserve delimeters while using String.split() in Java?

String TextValue = "hello{MyVar} Discover {MyVar2} {MyVar3}";
String[] splitString = TextValue.split("\\{*\\}");

我得到的输出是[{MyVar, {MyVar2, {MyVar3]splitString

但我的要求是保留那些分隔符{}[{MyVar}, {MyVar2}, {MyVar3}]

需要一种匹配上述输出的方法。

使用类似的东西:

Pattern p = Pattern.compile("(\\{\\w+\\})");
String str = ...
Matcher m = p.matcher(str);
while(m.find())
    System.out.println(m.group(1));

请注意,上面的代码未经测试,但会在大括号内查找单词并将它们放在一个组中。 然后它将遍历字符串并输出与上面的表达式匹配的任何字符串。

此处提供了正则表达式的示例。

谢谢kelvin&npinti。

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class CreateMatcherExample {
    public static void main(String[] args) {
        String TextValue = "hello{MyVar} Discover {My_Var2} {My_Var3}";
        String patternString = "\\{\\w+\\}";

        Pattern pattern = Pattern.compile(patternString);
        Matcher matcher = pattern.matcher(TextValue);

        while(matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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