java - 正则表达式如何匹配2个任意但不同的字符

标签 java

所以我有一个字符串 String s = "4433334552223"; 我想在每个字符更改时(在每对不同的字符之间)将其拆分为一个数组。 String [] aRay = s.split("IDK"); 我希望字符串数组在之后包含 {44,3333,4,55,222,3} split()

我知道如何使用循环等来做到这一点,但我只是想知道是否有一种简单的方法可以使用正则表达式来做到这一点?

最佳答案

您可以使用 backreference匹配重复的字符:

String s = "4433334552223";
Matcher m = Pattern.compile("(.)\\1*").matcher(s);
while (m.find()) {
    System.out.println(m.group());
}

Ideone Demo

关于java - 正则表达式如何匹配2个任意但不同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48737923/

相关文章:

java - 修改Android幻灯片以接受R.drawable中的字符串数组输入?

java - 多次搜索导致 OutOfMemoryError

java - transient 变量继承且子类被序列化

java - eclipse java.lang.NoClassDefFoundError 对于不存在的类

java - 项目 Reactor 组成 Flux.zip()

java - 如何将一个 bean 的构造函数参数传递给嵌套 bean

java - 如何导出和导入sqlite表?

java - 使用 JSch 库在 Java 中获取 session 和 SFTP channel

java - Android:将上下文传递给帮助程序类会导致 NPE

Java、Spring 在属性文件中使用变量的最佳实践