Регулярные выражения java api / regular expressions java api
Регулярные выражения в java.
1. Замена одного или нескольких сиволов или цифр.
. - один любой символ.
.* - любой символ повторяется сколько угодно раз.
\\(любой символ) - два слеша в java используются для указания какой сивол нужно искать, т.е. после двух обратных слешов вы указываете определнный символ, и поиск будет выполнен по этому сивмволу. В java некоторые буквы, определены как класс некоторых символов, например:
\\d - любая цифра (0-9)
\\d* - любая цифра повторяется ноль или несколько раз
\\w - люая буква
\\w+ - любая буква повторяется один или несколько раз
\\* - будет искаться символ звездочки
\\? - будет искаться символ знака вопроса
Пример:
Если у вас есть часть строки, и вторую часть вам нужно задать любыми
символами, то просто создайте строку String с известной частью строки а
неизвестные буквы замените точкой:
символами, то просто создайте строку String с известной частью строки а
неизвестные буквы замените точкой:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Testing {
public static void main(String[] args) {
String pattern = "......metal";
String[] array = new String[4];
array[0] = "heavy metal"; //подходит
array[1] = "dark metal"; //не подходит
array[2] = "death metal"; //подходит
array[3] = "progressive metal"; //не подходит
Pattern p = Pattern.compile(pattern) ;
Matcher m;
for (int i = 0; i < array.length; i++) {
m = p.matcher(array[i]) ;
System.out.println(array[i] + " = "+ m.matches()) ;
}
}
}
Программа выведет:
heavy metal = true
dark metal = false
death metal = true
progressive metal = false
2. Динамичкое формирование регулярного выражения.
Если вы хотите формировать строку для регулярного выражения динамически, то:
Пример:
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Testing {
public static void main(String[] args) {
String symbol_1 = "*";
String symbol_2 = "?";
String symbol_3 = "\\";
String symbol_4 = "|";
//формируем кодом строку "\\*|\\?", данная строка будет означать что необходимо искать символ звуздочки "*" или символ знака вопроса "?".
// Два символа обратного слеша в java используются для указания какой сивол нужно искать, т.е. после двух обратных слешов вы
// указываете определнный символ, и поиск будет выполнен по этому сивмволу.
String pattern = symbol_3 + symbol_1 + symbol_4 + symbol_3 + symbol_2;
System.out.println(pattern) ;
String s = "?go*do**that*";
Pattern p = Pattern.compile(pattern) ;
String[] array = p.split(s) ;
System.out.println(Arrays.deepToString(array)) ;
}
}
Комментариев нет:
Отправить комментарий