предисловие
Теперь регулярные выражения используются во многих местах, таких как обычные почтовые ящики, мобильные телефоны и т. д.
Я сталкивался с этим раньше, я собираюсь пойти в Google или один за другим.
Каждый раз, когда я хочу увидеть регулярку, меня пугает куча статей.
Я также написал это, чтобы надеяться, что, когда я забуду обычную в будущем, будет заметка, которая может быстро напомнить мне
Ведь никто (wo) не может запомнить это дело на всю жизнь!
Если вы думаете, что я помог вам, пожалуйста, проголосуйте!
Point
Лично я считаю, что наиболее важной грамматикой регулярности является классификация.Если вы научитесь хорошо классифицировать, в мире не будет строк, которым нельзя сопоставить.
Так называемая классификация - это одна (n) двойная скобка ()! Официальное существительное: подвыражение
полное совпадение
Давай, возьмем простой каштан.
Найдите Рождество в предложении, например, в лирике моей формы:
We can leave the Christmas lights up , util January.
В основе нашей классификации лежит то, что Рождество
Чтобы написать первую строку регулярного выражения: /(Christmas)/
(Если есть только одно совпадающее значение, мы обычно удаляем круглые скобки, т.е. /Рождество/)
Результат соответствия:
Christmas
сопоставление интервалов
Затем обновите, дойдите до небольшой проблемы с приложением:
Разделить все слова в предложении на одну строку
Ставим все слова а-з-а-я, составленные до сортировки
Это /a-zA-Z/, но умные друзья должны знать, что это недопустимо
Поскольку это будет точное совпадение, совпадением является ограниченная строка "a-zA-z" в предложении.
Здесь нам нужно понять концепцию интервала,
С точки зрения непрофессионала, строка, которую вы хотите сопоставить, будет находиться в этом интервале, и интервал представлен []
/ ([A-zA-Z]) / соответствует всем одиночным символам a-zA-Z
Спички:
W
e
c
a
n
l
e
a ...
Чтобы разрешить другие символы только тогда, когда они соответствуют одному символу, т. е. предыдущее подвыражение совпадает один или несколько раз, количество совпадений представлено знаком +.
Это немного запутанно, поэтому давайте перейдем непосредственно к картинке.
Наше выражение — /([a-zA-Z])+/, что означает, что подвыражение в () может быть выполнено несколько раз
Увидев эту картинку, сразу понятно, что группу мы называем Group, а + это 1 и более раз
Результат матча:
We
can
leave
the
Christmas
lights
up
util
January
несимвольное совпадение
В это время экзаменатор снова задал вопрос, и я все еще хочу сопоставить это, или символ, или другое! номер или что-то в этом роде.
Наша основа — это сопоставление слов, т. е. ([a-zA-Z])+ или , символов и .символов ([\,\.])
(специальные символы, преобразованные путем добавления \ перед символом)
Обычный предоставляет символ | для представления или отношения, и все группы связаны символом |,
([a-zA-Z])+|([\,\.])
Результат матча:
We
can
leave
the
Christmas
lights
up
,
util
January
.
сокращенный режим
Таким образом, вопрос в том, если мы хотим получить все это символы
Поштучное перечисление - это не наша инженерная ленточка (стиль)
\dто есть[0-9]
.表示是一位数字。记忆方式:其英文是digit(数字)。
\Dто есть[^0-9]
. Представляет любой символ, кроме цифр.
\wто есть[0-9a-zA-Z_]
. Представляет цифры, прописные и строчные буквы, а также знаки подчеркивания. Метод запоминания: w — это сокращение от слова, также известного как символ слова.
\Wда[^0-9a-zA-Z_]
. несловесные символы.
\sда[ \t\v\n\r\f]
. Обозначает пробелы, включая пробелы, горизонтальные табуляции, вертикальные табуляции, новые строки, возврат каретки и переводы форм. Метод запоминания: s — первая буква пробела.
\Sда[^ \t\v\n\r\f]
. не пробел.
.то есть[^\n\r\u2028\u2029]
. Подстановочный знак, представляющий практически любой символ. Исключениями являются новые строки, возврат каретки, разделители строк и разделители абзацев. Как запомнить: думайте о каждой точке в многоточии... как о заполнителе для чего-то подобного.
Перепишите ([a-zA-Z])+|([.\,]), чтобы сделать его совместимым со всеми символами
то есть ([a-zA-Z])+|([\S.]), соответствует всем словам и символам, кроме новых строк
Для тестирования мы изменили пример на Мы можем оставить рождественские огни зажженными до января!
Результат матча:
We
can
leave
the
Christmas
lights
up
,
util
January
!
Теперь вы можете согласиться с моей концепцией важности классификации?
совпадение местоположения
Что, если я просто хочу получить последнее слово, то есть январь.
Регулярное выражение предоставляет запись о позиции строки:
^ соответствует началу входной строки
$ Соответствует входной строке строк
\ B соответствует границе слова, то есть относится к локату и пространствам между словами. Например, «er \ b» совпадает с «никогда» в «ER», но не соответствует «глаголу» в «ER».
\ А Б \ б наоборот: эр \ Б 'соответствует "глаголу" в 'эр', но не соответствует "никогда" в 'эр'.
Результат матча:
January!
Не волнуйтесь, String.prototype.replace в сочетании с нашей группировкой в скобках дает нам единственную переменную, которую мы сгруппировали.
var pattern = /([a-zA-Z]+)(.)$/,
str = 'We can leave the Christmas lights up, util January!';
str.replace(pattern,(a,b,c)=>{
// a,b,c 为 January! January !
return something
})
Поскольку мы сопоставем шаблон на две группы, одну группу слов, символ группы,
Поэтому замените параметр функции в дополнение к нашему результату сопоставления более чем двумя значениями, т. Е. Словами и символами января!
Эпилог
Прочитав так много, я считаю, что базовое сопоставление больше не составляет для вас труда.
В процессе обучения регулярно работает инструмент на скриншоте выше.Regulex, это может быть очень полезно, чтобы помочь вам определить, правильна ли область вашего запроса.
сотрудничать одновременноИнструмент онлайн-тестирования регулярных выраженийУбедитесь, что совпадение правильное.
На самом деле, есть еще много функций, которые не упомянуты в этой статье, вы можете изучить clams самостоятельно.