我正在使用正则表达式来查找模式
我需要以这种方式找到所有比赛:
输入:“word1_word2_word3 _...”
结果:“word1_word2”,“word2_word3”,“word4_word5”..
答案 0 :(得分:2)
可以使用(?=)
肯定前瞻来完成。
正则表达式:(?=(?:_|^)([^_]+_[^_]+))
Java代码:
String text = "word1_word2_word3_word4_word5_word6_word7";
String regex = "(?=(?:_|^)([^_]+_[^_]+))";
Matcher matcher = Pattern.compile(regex).matcher(text);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
输出:
word1_word2
word2_word3
word3_word4
...
答案 1 :(得分:1)
您可以使用split
在没有正则表达式的情况下执行此操作 String input = "word1_word2_word3_word4";
String[] words = input.split("_");
List<String> outputs = new LinkedList<>();
for (int i = 0; i < words.length - 1; i++) {
String first = words[i];
String second = words[i + 1];
outputs.add(first + "_" + second);
}
for (String output : outputs) {
System.out.println(output);
}