
- •По курсу «Интернет-программирование»
- •Принципы работы регулярных выражений
- •История развития регулярных выражений
- •Принципы регулярных выражений
- •Конструкции шаблонов регулярных выражений
- •Классы символов (диапазоны)
- •Квантификаторы (повторения)
- •Граничные метасимволы
- •Перечисления
- •Группировки
- •Утверждения
- •Условные подвыражения
- •Реализация регулярных выражений в языках программирования
- •Примеры
Реализация регулярных выражений в языках программирования
Реализация регулярных выражений в JavaScript, PHP, Java Таблица 8
* - в разных языках механизм мультистрочности может быть реализован различным образом и означать как удаление символов, так и их замена на экранированные последовательности.
JavaScript |
PHP |
Java |
Предварительные условия | ||
нет |
нет |
import java.util.regex.Pattern; import java.util.regex.Matcher; |
Поиск в строке str совпадения c шаблоном reg с возвратом true или false | ||
/reg/.test(str); |
preg_match(reg, str); |
Pattern pt = Pattern.compile (reg); Matcher mt = pt.matcher(str); mt.find(); // true или false |
str.search(reg); |
boolean pt.matches(reg, str); | |
Найти в строке str одно или все совпадения c шаблоном reg с возвратом массива, содержащего найденные совпадения для последующей обработки | ||
str.match(reg); // без флага g вернет первое совпадение, c флагом g - все |
preg_match(reg, str, results); // results – массив, элементами которого являются совпадения |
Pattern pt = Pattern.compile (reg); Matcher mt = pt.matcher(str); while (matcher.find()) matcher.group(); // каждое совпадение |
Найти в строке str одно или все совпадения c шаблоном reg и заменить их на значения из шаблона reg_r | ||
str.replace(reg,reg_r); |
preg_replace(reg1, reg_r, str); |
Pattern pt = Pattern.compile (reg); Matcher mt = pt.matcher(str); matcher.replaceFirst(reg_r); |
Реализация глобального действия (т.е. на все совпадения с шаблоном), регистронезависимости и мультистрочности* | ||
Добавление справа к шаблону: /reg/ g - глобальность I - регистронезав. m – мультистрочность пример: /reg/gim |
Добавление справа к шаблону: /reg/ I - регистронезависимость m – мультистрочность
preg_match_all(reg, str, results); |
Pattern pt = Pattern.compile(reg, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE ); matcher.replaceAll(reg_r); // глобальность |
Разбить строку str на массив по шаблону reg | ||
str.split(reg) |
preg_split(reg, str); |
Pattern pt = Pattern.compile (reg); String[] result = pt.split(str); |
String[] result = str.split(reg); | ||
Специальные возможности | ||
var reg = шаблон; reg.exec(str); // вернет первое совпадение
str.replace(reg,fun); // здесь fun — имя функции, которой передается каждое совпадение для обработки |
results = preg_replace_callback(reg, fun,str) // здесь fun — имя функции в кавычках, которой передается каждое совпадение для обработки |
|