Что такое регулярное выражение для. и...?
if(key.matches(".")) {
do something
}
Матчи принимают String, который запрашивает регулярное выражение. Теперь мне нужно удалить все DOT внутри моей MAP.
Что такое регулярное выражение для. и...?
if(key.matches(".")) {
do something
}
Матчи принимают String, который запрашивает регулярное выражение. Теперь мне нужно удалить все DOT внутри моей MAP.
. соответствует любому символу, поэтому требуется выполнить escaping i.e. \.
или \\.
в строке Java (поскольку \
сам имеет особое значение в строках Java.)
Затем вы можете использовать \.\.
или \.{2}
для соответствия ровно 2 точкам.
...
[.]{1}
или
[.]{2}
?
[+ *?.] Большинство специальных символов не имеют значения внутри квадратных скобок. Это выражение соответствует любому из +, *,? или точка.
Используйте 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
Вы должны использовать содержит не совпадения
if(nom.contains("."))
System.out.println("OK");
else
System.out.println("Bad");