java - 正则表达式如何匹配字符串中不重复的子串?

标签 java regex

有一个字符串:

"1112344866893334". 

我想使用正则表达式来匹配不重复的子字符串,例如:

"23", "8", "89", "4".

我怎样才能做到这一点?

最佳答案

您可以迭代字符串的长度,然后使用正则表达式来断言子字符串不重复,例如

String input = "1112344866893334";
for (int i=0; i < input.length()-1; ++i) {
    String substring = input.substring(i, i+2);
    String regex = "(?!.*" + substring + ".*" + substring + ").*";
    if (input.matches(regex)) {
        System.out.println("matching substring: " + substring);
    }
}

关于java - 正则表达式如何匹配字符串中不重复的子串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790982/

相关文章:

javascript - 多个 If 与正则表达式

javascript - JS 正则表达式 : Double slash splitting along with other characters

php - 正则表达式不允许电话号码前导 0

java - 想要比较两个 HashMap 并删除它们

java - 打印素数的程序逻辑

java - JTextPane .getText() 不保留 HTML 的空白?

javafx 将 KeyTyped 的值存储在字符串中

javascript - 正则表达式在 HTML 文件中使用 getAttribute 批量替换 attribute[x]

regex - 用于匹配文件中唯一单词的正则表达式

java - 可视化 JVM 内存区域