Найти в Дзене
От Джуна до Лида (IT Jobs)

Регулярные выражения в Java – Введение в Soft

Регулярное выражение – это своего рода шаблон, который можно применять к тексту (String, в Java). Java предоставляет пакет java.util.regex для сопоставления с шаблоном с регулярными выражениями. Регулярные выражения Java очень похожи на язык программирования Perl и очень просты в освоении Регулярное выражение либо соответствует тексту (или его части), либо не соответствует. * Если регулярное выражение соответствует части текста, то мы можем выяснить, какая именно. ** Если регулярное выражение сложное, то мы можем легко определить, какая часть регулярного выражения соответствует какой части текста. Первый пример Регулярное выражение « [az] + » соответствует всем строчным буквам в тексте. [az] означает любой символ от a до z включительно, а + означает «один или несколько». Предположим, мы предоставляем строку «code 2 learn java tutorial». Как это сделать на Java Сначала вы должны скомпилировать шаблон: импорт java.util.regex. *; Pattern p = Pattern.compile («[az] +»); Далее необходимо с
Оглавление

Регулярное выражение – это своего рода шаблон, который можно применять к тексту (String, в Java). Java предоставляет пакет java.util.regex для сопоставления с шаблоном с регулярными выражениями. Регулярные выражения Java очень похожи на язык программирования Perl и очень просты в освоении

Регулярное выражение либо соответствует тексту (или его части), либо не соответствует.

* Если регулярное выражение соответствует части текста, то мы можем выяснить, какая именно.

** Если регулярное выражение сложное, то мы можем легко определить, какая часть регулярного выражения соответствует какой части текста.

Первый пример

Регулярное выражение « [az] + » соответствует всем строчным буквам в тексте.

[az] означает любой символ от a до включительно, а + означает «один или несколько».

Предположим, мы предоставляем строку «code 2 learn java tutorial».

Как это сделать на Java

Сначала вы должны скомпилировать шаблон:

импорт java.util.regex. *;

Pattern p = Pattern.compile («[az] +»);

Далее необходимо создать сопоставление для текста, отправив сообщение в шаблон:

Matcher m = p.matcher («Учебник Java 2 по кодексу 2»);

НОТА :

Ни у Pattern, ни у Matcher нет открытого конструктора, мы создаем его с помощью методов в классе Pattern.

Класс Pattern. Объект Pattern представляет собой скомпилированное представление регулярного выражения. Класс Pattern не предоставляет общедоступных конструкторов. Чтобы создать шаблон, вы должны сначала вызвать один из его открытых методов статической компиляции, который затем вернет объект Pattern. Эти методы принимают регулярное выражение в качестве первого аргумента.

Класс Matcher : объект Matcher – это механизм, который интерпретирует шаблон и выполняет операции сопоставления с входной строкой. Как и класс Pattern, Matcher не определяет общедоступных конструкторов. Вы получаете объект Matcher, вызывая метод matcher для объекта Pattern.

После того, как мы выполнили вышеуказанные шаги, и теперь, когда у нас есть совпадение m , мы можем проверить, было ли найдено совпадение и если да, то с какой позиции индекса оно начинается и т. Д.

m.matches () возвращает true, если шаблон соответствует всей строке, или же false.

m.lookingAt () возвращает true, если шаблон соответствует началу строки, и false в противном случае.

m.find () возвращает true, если шаблон соответствует какой-либо части текста.

Нахождение того, что было подобрано

После успешного сопоставления m.start () вернет индекс первого сопоставленного символа, а m.end () вернет индекс последнего сопоставленного символа плюс один.

Если совпадение не было предпринято или совпадение было неудачным, m.start () и m.end () сгенерируют исключение IllegalStateException

– Это RuntimeException, поэтому вам не нужно его ловить

Может показаться странным, что m.end () возвращает индекс последнего сопоставленного символа плюс один, но это как раз то, что требуется большинству методов String

– Например, « сейчас время » .substring (m.start () , m.end () )

вернет точно совпадающую подстроку.

Java программа:

import java.util.regex.*;

public class RegexTest {

public static void main(String args[]) {

String pattern = "[a-z]+";

String text = "code 2 learn java tutorial";

Pattern p = Pattern.compile(pattern);

Matcher m = p.matcher(text);

while (m.find()) {

System.out.print(text.substring(m.start(), m.end()) + "*");

}

}

}

Вывод : код * выучить * Java * учебник *.

Дополнительные методы

Если m совпадает, то

 m.replaceFirst ( замена ) возвращает новую строку, в которой первая подстрока, соответствующая шаблону, была заменена заменой.

 m.replaceAll ( замена ) возвращает новую строку, где каждая подстрока, соответствующая шаблону, была заменена заменой.

– m.find ( startIndex ) ищет следующее совпадение с шаблоном, начиная с указанного индекса

– m.reset () сбрасывает это сопоставление

– m.reset ( newText ) сбрасывает этот сопоставитель и дает ему новый текст для проверки (который может быть String, StringBuffer или CharBuffer)

#java #it #code #junior #middle #senior