Руководство по Java metanit com Данный раздел посвящен языку программирования Java и всем сопутствующим


matches(String pattern, CharSequence input)



Download 1,75 Mb.
Pdf ko'rish
bet73/110
Sana23.02.2022
Hajmi1,75 Mb.
#177154
TuriРуководство
1   ...   69   70   71   72   73   74   75   76   ...   110
Bog'liq
2 5305247065486395003

matches(String pattern, CharSequence input). Данный метод возвращает true, если
последовательность символов input полностью соответствует шаблону строки pattern:
import java.util.regex.Pattern;
public class StringsApp {
public static void main(String[] args) {
String input = "Hello";
boolean found = Pattern.matches("Hello", input);
if(found)
System.out.println("Найдено");
else
System.out.println("Не найдено");
}
}
Но, как правило, для поиска соответствий применяется другой способ - использование
класса Matcher.
Класс Matcher
Рассмотрим основные методы класса Matcher:
boolean matches(): возвращает true, если вся строка совпадает с шаблоном
boolean find(): возвращает true, если в строке есть подстрока, которая совпадает с
шаблоном, и переходит к этой подстроке
String group(): возвращает подстроку, которая совпала с шаблоном в результате вызова
метода find. Если совпадение отсутствует, то метод генерирует исключение IllegalStateException.
int start(): возвращает индекс текущего совпадения
int end(): возвращает индекс следующего совпадения после текущего
String replaceAll(String str): заменяет все найденные совпадения подстрокой str и
возвращает измененную строку с учетом замен
Используем класс Matcher. Для этого вначале надо создать объект Pattern с помощью
статического метода compile(), который позволяет установить шаблон:
Pattern pattern = Pattern.compile("Hello");
В качестве шаблона выступает строка "Hello". Метод compile() возвращает объект Pattern,
который мы затем можем использовать в программе.
В классе Pattern также определен метод matcher(String input), который в качестве
параметра принимает строку, где надо проводить поиск, и возвращает объект Matcher:
String input = "Hello world! Hello Java!";
Pattern pattern = Pattern.compile("hello");
Matcher matcher = pattern.matcher(input);
Затем у объекта Matcher вызывается метод matches() для поиска соответствий шаблону в
тексте:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringsApp {


public static void main(String[] args) {
String input = "Hello";
Pattern pattern = Pattern.compile("Hello");
Matcher matcher = pattern.matcher(input);
boolean found = matcher.matches();
if(found)
System.out.println("Найдено");
else
System.out.println("Не найдено");
}
}
Рассмотрим более функциональный пример с нахождением не полного соответствия, а
отдельных совпадений в строке:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringsApp {
public static void main(String[] args) {
String input = "Hello Java! Hello JavaScript! JavaSE 8.";
Pattern pattern = Pattern.compile("Java(\\w*)");
Matcher matcher = pattern.matcher(input);
while(matcher.find())
System.out.println(matcher.group());
}
}
Допустим, мы хотим найти в строке все вхождения слова Java. В исходной строке это три
слова: "Java", "JavaScript" и "JavaSE". Для этого применим шаблон "Java(\\w*)". Данный шаблон
использует синтаксис регулярных выражений. Слово "Java" в начале говорит о том, что все
совпадения в строке должны начинаться на Java. Выражение (\\w*) означает, что после "Java" в
совпадении может находиться любое количество алфавитно-цифровых символов. Выражение \w
означает алфавитно-цифровой символ, а звездочка после выражения указывает на
неопределенное их количество - их может быть один, два, три или вообще не быть. И чтобы java
не рассматривала \w как эскейп-последовательность, как \n, то выражение экранируется еще
одним слешем.
Далее применяется метод find() класса Matcher, который позволяет переходить к
следующему совпадению в строке. То есть первый вызов этого метода найдет первое совпадение
в строке, второй вызов найдет второе совпадение и т.д. То есть с помощью цикла
while(matcher.find()) мы можем пройтись по всем совпадениям. Каждое совпадение мы можем
получить с помощью метода matcher.group(). В итоге программа выдаст следующий результат:
Java
JavaScript
JavaSE

Download 1,75 Mb.

Do'stlaringiz bilan baham:
1   ...   69   70   71   72   73   74   75   76   ...   110




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish