这是字符串:

1. "AAA BBB  CCCCC CCCCCCC"
2. "  AAA              BBB  DDDD DDDD DDDDD"
3. "    EEE         FFF  GGGGG GGGGG"


第一个单词和第二个单词的开头和之间的空格可以不同。
所以我需要一个RegEx删除第三个单词之前的所有内容,以便它总是返回
“ CCCCC CCCCCCC”或“ DDDD DDDD DDDDD”或“ GGGGG GGGGG”。
假设它可以通过RegEx完成,而不是解析字符串中的所有单词

最佳答案

此正则表达式将起作用

\s*\w+\s+\w+\s+(.+$)


Regex Demo

JAVA代码

String pattern  = "(?m)\\s*\\w+\\s+\\w+\\s+(.+$)";
String line = "AAA BBB  CCCCC CCCCCCC\n  AAA              BBB  DDDD DDDD DDDDD\n    EEE         FFF  GGGGG GGGGG";

Pattern r = Pattern.compile(pattern);

Matcher m = r.matcher(line);
while (m.find()) {
     System.out.println("Found value: " + m.group(1) );
}


Ideone Demo

关于java - 如何通过RegEx或replaceAll删除包含特殊字符的字符串部分?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36871445/

10-11 10:18