我正在尝试查找所有出现的“ .-”。在此字符串“ -.-.-.-”中,因此我希望输出为2,而不是1。
如果我在此字符串“ -.-.......--”“上进行搜索,则我希望得到2,而我得到的确是2。因此在我看来,该搜索无法识别单个”。 -。”当它们彼此相邻分组时。我该如何解决?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class test {
public static void find() {
int count = 0;
Pattern p = Pattern.compile("\\.-\\.");
Matcher m = p.matcher("-.-.-.-");
while (m.find()) {
count++;
}
System.out.println(count);
}
public static void main(String[] args) {
find();
}
}
答案 0 :(得分:0)
以上逻辑的解决方法是
String p = ".-.";
String s = "-.-.-.-";
int count = 0;
for (int index = s.indexOf(pa);
index >= 0;
index = s.indexOf(pa, index + 1)){
count++;
}
答案 1 :(得分:0)
修正了尼克和泡泡泡泡提出的前瞻性
Pattern p = Pattern.compile("\\.-(?=\\.)");