Подтвердить что ты не робот

Регулярное выражение для DOT

Что такое регулярное выражение для. и...?

if(key.matches(".")) {

do something 

}

Матчи принимают String, который запрашивает регулярное выражение. Теперь мне нужно удалить все DOT внутри моей MAP.

4b9b3361

Ответ 1

. соответствует любому символу, поэтому требуется выполнить escaping i.e. \. или \\. в строке Java (поскольку \ сам имеет особое значение в строках Java.)

Затем вы можете использовать \.\. или \.{2} для соответствия ровно 2 точкам.

Ответ 2

...

[.]{1}

или

[.]{2}

?

Ответ 3

[+ *?.] Большинство специальных символов не имеют значения внутри квадратных скобок. Это выражение соответствует любому из +, *,? или точка.

Ответ 4

Используйте String.Replace(), если вы просто хотите заменить точки из строки. Альтернативой было бы использовать Pattern-Matcher с StringBuilder, это дает вам большую гибкость, так как вы можете найти группы, которые находятся между точками. Если использовать последнее, я бы порекомендовал вам игнорировать пустые записи с помощью "\\.+".

public static int count(String str, String regex) {
    int i = 0;
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(str);
    while (m.find()) {
        m.group();
        i++;
    }
    return i;
}

public static void main(String[] args) {
    int i = 0, j = 0, k = 0;
    String str = "-.-..-...-.-.--..-k....k...k..k.k-.-";

    // this will just remove dots
    System.out.println(str.replaceAll("\\.", ""));
    // this will just remove sequences of ".." dots
    System.out.println(str.replaceAll("\\.{2}", ""));
    // this will just remove sequences of dots, and gets
    // multiple of dots as 1
    System.out.println(str.replaceAll("\\.+", ""));

    /* for this to be more obvious, consider following */
    System.out.println(count(str, "\\."));
    System.out.println(count(str, "\\.{2}"));
    System.out.println(count(str, "\\.+"));
}

Выход будет:

--------kkkkk--
-.--.-.-.---kk.kk.k-.-
--------kkkkk--
21
7
11

Ответ 5

Вы должны использовать содержит не совпадения

if(nom.contains("."))
    System.out.println("OK");
else
    System.out.println("Bad");