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

标签 java

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

我得到的输出是 [{MyVar, {MyVar2, {MyVar3] in 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));

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

正则表达式的示例可用here .

关于java - 在 Java 中使用 String.split() 时如何保留分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39285267/

相关文章:

java - 为什么在 catch InterruptException block 中调用 Thread.currentThread.interrupt()?

java - 从 Activity 调用 fragment 时应用程序崩溃

java - 如何摆脱这个溢出错误?

java - joda.time.DateTime.toLocalDateTime() NoSuchMethodError

java - Eclipse:将源代码文件夹导入其他项目

java - 如何解析没有数组名称的 JSON 数组

java - 无法定位平台 : 'Java SE 12' using tool chain: 'JDK 8 (1.8)'

java - 从 jar 内的绝对路径加载 Java 资源

java - Spring Boot 未连接到 RabbitMQ

java - TypeScript 映射到 Java 映射