VBCoding Статьи Visual Basic 6 Visual Basic Регулярные выражения и с чем это едят

Visual Basic 6
Регулярные выражения и с чем это едят

Регулярные выражения позволяют проверить строку на соответствие определенным условиям, например узнать, что она является номером телефона, датой или сложным паролем. Поддержка регулярных выражений реализована во многих языках программирования и VisualBasic не является исключением. Для использования регулярных выражений в VB необходимо подключить библиотеку Microsoft VBScript Regular Expressions. Для проверки строки регулярным выражением предлагается готовая функция:

Public Function ereg(ByVal Expression As String, ByVal Mask As String)  As Boolean
Static soRegExp As New VBScript_RegExp_55.RegExp
'55 - версия библиотеки, если у Вас другая версия, замените это число
soRegExp.Pattern = Mask
ereg = soRegExp.Test(Expression)
End Function


Функция возвращает True, если строка Expression соответствует регулярному выражению Mask.

Регулярные выражения чувствительны к регистру символов. Простейшее регулярное выражение - это строка для поиска, не содержащая спецсимволов. Таким является ABBC, оно совпадает со всеми строками, включающими в себя ABBC. Т.е. строка AABBCDEZ совпадает с ним, а ABC и AbbC не совпадают.
Спецсимволы используются в выражениях для особых целей, например, позволяют указать, что символ может повторяться один и более раз. Основные спецсимволы: ()[]{}|?$^+*\. Чтобы спецсимвол воспринимался как обычный символ строки, его необходимо экранировать символом \, например \$ в Ma\$ter воспринимается как знак доллара.
Еще одна возможность спецсимвола экранирования \ - указание символа по шестнадцатиричному коду, например, \xFF.

 * 

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

+

предыдущий символ повторяется один раз и больше

 ?

предыдущий символ присутствует один или ноль раз


Т.е. выражению A?B\\B*C+Z соответствуют AB\CCZ, AQB\BCZ и AwB\BBBCZ. Спецсимволы группировки () позволяют распространить действие одного спецсимвола на несколько символов. В выражении (AB)+C действие плюса распространяется не на одну букву B, а на группу символов AB.

Спецсимволы ^ и $ соответственно означают начало и конец строки. Например, выражению ^ABBC соответствует строка ABBCD, но не XABBC. ABBC$ наоборот соответствует XABBC, но не ABBCD. Спецсимвол "." совпадает с любым символом.

Структура диапазона {min, max} задает минимальное и максимальное количества повторения символа или группы (). В случае, когда min = max, допустимо сокращение {count}. Пример регулярного выражения с использованием диапазонa: A{1,2}(BC){5}. Под него подходит строка, содержащая AABCBCBCBCBC или ABCBCBCBCBC.
Спецсимвол | означает один из вариантов, например выражению ^(A|B)$ соответствует буква A, B и больше ничего.
Спецсимволы [] позволяют использовать в выражении символьные классы. С помощью них можно задать набор допустимых символов - [AaQB], диапазон - [A-CL-Z] и комбинировать эти варианты [A-Cl-zFG]. Спецсимвол ^ в начале символьного класса делает его инвертированным, то есть символы, указанные в нем не должны встречаться. ^[^A-Za-z]$ совпадает с любой строкой, не содержащей латинских букв.

Регулярные выражения можно использовать для проверки многих форматов данных, телефоны, даты, логины пользователей и т.п. Пример регулярного выражения для номера телефона формата 123-45-67: ^[0-9]{3}(-[0-9]{2}){2}$
^ - начало строки;
[0-9]{3} - цифра от 0 до 9, которая повторяется три раза(123 в номере);
(-[0-9]{2}){2} - знак "минус", две цифры, этот фрагмент повторяется два раза(-45 и -67 в номере).

Составляйте регулярные выражения для разных форматов данных и присылайте нам по электронной почте. В следующем номере рассылки они обязательно будут опубликованы.
Существует много возможностей применения регулярных выражений. Эта статья лишь раскрывает основы этой мощной технологии.

Копирование, цитирование, хранение, перепечатка и/или публикация данной статьи разрешены только при обязательном указании прямой ссылки на сайт http://www.vbcoding.org.ua , E-Mail автора и данного предупреждения. Статья может быть исправлена и/или дополнена автором без уведомления читателей.
Автор: Влад Таранов, Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript .

 

Добавить комментарий


Защитный код
Обновить

 
VBCoding Статьи Visual Basic 6 Visual Basic Регулярные выражения и с чем это едят  
Powered by Exponenta -