[英]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.