有个正则表达式小白不会写

有个需求,正则表达式匹配任何字符,但是字符串中最多只能出现一次   “.”    。求大佬赐教

  1. 正则表达式:[^.]*\.?[^.]*
  2. 解释:
    1. [^.]* 表示任意个非 . 字符
    2. \.? 表示0到1个 . 字符

这种简单的为啥不用查找法。

String a=new String();
  int count=0;
  Scanner input=new Scanner(System.in);

  System.out.println("输入一个字符串");
  String string=input.next();

  String in=".";
  char[] ch=string.toCharArray();
  char c=in.charAt(0);
  for (int i = 0; i < ch.length; i++) {
   if (c==ch[i]) {
    count++;
   }
  }
  System.out.println("字符串"+string+"中 存在"+count+"个字符"+c);

写正则也太麻烦了。你这样就能判断了。

if (str.indexOf('.') == str.lastIndexOf('.')) {
    return true;
} else {
    return false;
}

/\.?/