Регулярные выражения — это последовательность символов, образующая шаблон, который в основном используется для поиска и замены. Целью создания шаблона является сопоставление определенных строк, чтобы разработчик мог извлекать символы в зависимости от условий и заменять определенные символы.
RegExp Object
Объект RegExp помогает разработчикам соответствовать шаблону строк, а свойства и методы помогают нам легко работать с регулярными выражениями. Это похоже на RegExp в JavaScript
свойства
-
Pattern — Метод Pattern представляет собой строку, которая используется для определения регулярного выражения, и его следует установить перед использованием объекта регулярного выражения.
-
IgnoreCase — логическое свойство, представляющее, следует ли проверять регулярное выражение на предмет всех возможных совпадений в строке, если оно равно true или false. Если не указано явно, значение IgnoreCase устанавливается в False.
-
Global — логическое свойство, представляющее, следует ли проверять регулярное выражение на предмет всех возможных совпадений в строке. Если не указано явно, глобальное значение установлено в False.
Pattern — Метод Pattern представляет собой строку, которая используется для определения регулярного выражения, и его следует установить перед использованием объекта регулярного выражения.
IgnoreCase — логическое свойство, представляющее, следует ли проверять регулярное выражение на предмет всех возможных совпадений в строке, если оно равно true или false. Если не указано явно, значение IgnoreCase устанавливается в False.
Global — логическое свойство, представляющее, следует ли проверять регулярное выражение на предмет всех возможных совпадений в строке. Если не указано явно, глобальное значение установлено в False.
методы
-
Test (search-string) — метод Test принимает строку в качестве аргумента и возвращает True, если регулярное выражение может быть успешно сопоставлено со строкой, в противном случае возвращается False.
-
Replace (search-string, replace-string) — метод Replace принимает 2 параметра. Если поиск успешен, то он заменяет это совпадение строкой замены, и возвращается новая строка. Если совпадений нет, возвращается исходная строка поиска.
-
Execute (search-string) — метод Execute работает как Replace, за исключением того, что он возвращает объект коллекции Matches, содержащий объект Match для каждого успешного соответствия. Это не изменяет исходную строку.
Test (search-string) — метод Test принимает строку в качестве аргумента и возвращает True, если регулярное выражение может быть успешно сопоставлено со строкой, в противном случае возвращается False.
Replace (search-string, replace-string) — метод Replace принимает 2 параметра. Если поиск успешен, то он заменяет это совпадение строкой замены, и возвращается новая строка. Если совпадений нет, возвращается исходная строка поиска.
Execute (search-string) — метод Execute работает как Replace, за исключением того, что он возвращает объект коллекции Matches, содержащий объект Match для каждого успешного соответствия. Это не изменяет исходную строку.
Объект коллекции матчей
Объект коллекции Matches возвращается как результат метода Execute. Этот объект коллекции может содержать ноль или более объектов Match, и свойства этого объекта доступны только для чтения.
-
Count — Метод Count представляет количество совпадающих объектов в коллекции.
-
Item — метод Item позволяет получить доступ к объектам сопоставления из объекта коллекций совпадений.
Count — Метод Count представляет количество совпадающих объектов в коллекции.
Item — метод Item позволяет получить доступ к объектам сопоставления из объекта коллекций совпадений.
Матч Объект
Объект Match содержится в объекте коллекции match. Эти объекты представляют успешное совпадение после поиска строки.
-
FirstIndex — представляет позицию в исходной строке, где произошло совпадение. Этот индекс начинается с нуля, что означает, что первая позиция в строке равна 0.
-
Длина — значение, представляющее общую длину совпадающей строки.
-
Значение — значение, представляющее сопоставленное значение или текст. Это также значение по умолчанию при доступе к объекту Match.
FirstIndex — представляет позицию в исходной строке, где произошло совпадение. Этот индекс начинается с нуля, что означает, что первая позиция в строке равна 0.
Длина — значение, представляющее общую длину совпадающей строки.
Значение — значение, представляющее сопоставленное значение или текст. Это также значение по умолчанию при доступе к объекту Match.
Все о шаблоне параметров
Построение образца похоже на PERL. Создание шаблонов — самая важная вещь при работе с регулярными выражениями. В этом разделе мы поговорим о том, как создать шаблон на основе различных факторов.
Соответствие позиции
Важность сопоставления позиций заключается в том, чтобы мы размещали регулярные выражения в правильных местах.
Условное обозначение | Описание |
---|---|
^ | Соответствует только началу строки. |
$ | Совпадение только с концом строки. |
\ б | Соответствует любой границе слова |
\ B | Соответствует любой границе без слов |
Соответствие литералам
Любая форма символов, таких как алфавит, цифра или специальный символ или даже десятичный, шестнадцатеричный, может рассматриваться как литерал. Поскольку некоторые символы уже имеют особое значение в контексте регулярных выражений, нам нужно избегать их, используя escape-последовательности.
Условное обозначение | Описание |
---|---|
алфавитно-цифровой | Совпадает только с алфавитными и числовыми символами. |
\ п | Соответствует новой строке. |
\ [ | Соответствует [только буквально |
\] | Спички] только литералы |
\ ( | Матчи (только буквальные) |
\) | Совпадения) только литералы |
\ т | Соответствует горизонтальной вкладке |
\ v | Соответствует вертикальной вкладке |
\ | | Матчи | только буквальный |
\ { | Матчи {только литералы |
\} | Матчи} только литералы |
\\ | Совпадения \ только буквальные |
\? | Матчи ? только буквальный |
\ * | Совпадения * только литералы |
\ + | Совпадения + только литералы |
\. | Матчи . только буквальный |
\ б | Соответствует любой границе слова |
\ B | Соответствует любой границе без слов |
\ е | Соответствует каналу |
\р | Соответствует возврат каретки |
\ ххх | Соответствует ASCII-символу восьмеричного числа xxx. |
\ XDD | Соответствует символу ASCII шестнадцатеричного числа dd. |
\ ихххх | Соответствует ASCII-символу литерала UNICODE xxxx. |
Соответствие классов персонажей
Классы символов — это Шаблон, сформированный индивидуальной группировкой и заключенный в фигурные скобки []. Если мы ожидаем класс символов, которого не должно быть в списке, то мы должны игнорировать этот конкретный класс символов, используя отрицательный символ, который является заглавной буквой ^.
Условное обозначение | Описание |
---|---|
[Хуг] | Соответствует любому классу символов, заключенному в набор символов. |
[^ Хуг] | Соответствует любому из классов символов, которые НЕ включены в набор символов. |
, | Соответствует любому классу символов, кроме \ n |
\ ш | Соответствует любому классу символов слова. Эквивалентно [a-zA-Z_0-9] |
\ W | Соответствует любому классу не-словесных символов. Эквивалентно [^ a-zA-Z_0-9] |
\ d | Соответствует любому классу цифр. Эквивалентно [0-9]. |
\ D | Соответствует любому нецифровому классу символов. Эквивалентно [^ 0-9]. |
\ s | Соответствует любому классу символов пробела. Эквивалентно [\ t \ r \ n \ v \ f] |
\ S | Соответствует любому классу символов пробела. Эквивалентен [^ \ t \ r \ n \ v \ f] |
Повторение соответствия
Сопоставление повторений позволяет выполнять многократный поиск в регулярном выражении. Он также определяет количество повторений элемента в регулярном выражении.
Условное обозначение | Описание |
---|---|
* | Соответствует нулю или более вхождений данного регулярного выражения. Эквивалентно {0,}. |
+ | Соответствует одному или нескольким вхождениям данного регулярного выражения. Эквивалент {1,}. |
? | Соответствует нулю или одному вхождению данного регулярного выражения. Эквивалент {0,1}. |
{Икс} | Точно соответствует x количеству вхождений данного регулярного выражения. |
{Икс,} | Совпадение по крайней мере x или более вхождений данного регулярного выражения. |
{Х, у} | Соответствует x-y количеству вхождений данного регулярного выражения. |
Чередование и группировка
Чередование и группировка помогают разработчикам создавать более сложные Регулярные выражения, в частности обрабатывать сложные предложения внутри Регулярного выражения, что обеспечивает большую гибкость и контроль.
Условное обозначение | Описание |
---|---|
0 | Группировка предложения для создания предложения. «(xy)? (z)» соответствует «xyz» или «z». |
| | Чередование объединяет одно предложение регулярного выражения, а затем сопоставляет любое из отдельных предложений. «(ij) | (23) | (pq)» соответствует «ij» или «23» или «pq». |
Создание регулярных выражений
Ниже приведены несколько примеров, которые четко объясняют, как построить регулярное выражение.
Регулярное выражение | Описание |
---|---|
«^ \ s * ..» и «.. \ s * $» | Представляет, что в одной строке может быть любое количество начальных и конечных пробелов. |
«((\ $ \ S) |? (# \ S)?)?» | Представляет необязательный знак $ или #, за которым следует необязательный пробел. |
«((\ D + (\. (\ Д д \)?)?))» | Представляет, что присутствует хотя бы одна цифра, за которой следуют необязательные десятичные дроби и две цифры после десятичных. |
пример
В приведенном ниже примере проверяется, вводил ли пользователь идентификатор электронной почты, формат которого должен совпадать, так что после идентификатора электронной почты следует «@», а затем имя домена.