Что такое правильные выражения? Регулярные выражения используют определенные заранее определенные символы и их комбинации, чтобы создать цепочку правил, используемых для выражания логики фильтрации.
给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);
可以通过正则表达式,从字符串中获取我们想要的特定部分。
Для того, чтобы упростить процесс обучения, я рекомендую Regextor, программное обеспечение для проверки правильных выражений, в частности, вы можете посмотреть мою статью, в которой я рекомендую много хорошего программного обеспечения для Mac.

Регулярные выражения могут содержать только обычный текст, который точно соответствует этому тексту. Например:
Правильное выражение:song
Поделиться “Контакт: Xiaosongge, xiao Songge”
Результаты поиска: xiaosongge,xiaoSongge
Регулярные выражения по умолчанию отличаются от перво- и второстепенных букв, поэтому song не будет соответствовать “Song”. Однако большинство реализаций регулярных выражений предоставляют опцию не различать перво- и второстепенных букв.
. используется для сопоставления произвольного символа, например:
Правильное выражение: c.t.
Текст на английском языке: cat cet caaat dog
Результаты после совпадения:cat cet caaat dog
Анализ: c.t будет соответствовать строкам, начинающимся с “c” и заканчивающимся с “t”, с произвольными символами посередине.
Аналогичным образом, множество последовательных. может соответствовать множеству последовательных произвольных символов:
Правильное выражение: c..t
Дополнительная информация: cat cet caat dog
Результаты матча: cat cet caat dog
. в регулярном выражении содержит специальный смысл, является специальным символом. .\ также является специальным символом, который может служить для перевода специальных символов. Если вы хотите соответствовать действительному символу “ . ” , вам нужно..Знак . “ означает настоящий.
Правильные выражения: c.t
Дополнительный текст: cat c.t dog
Результаты поиска: catc.t dog
Примечание: поскольку \ также является специальным символом, для того, чтобы совпасть с настоящим символом \, необходимо использовать две обратные скобки.\:
Правильные выражения: c\t
Дополнительный текст: cat c\t dog
Результаты поиска: catc\t dog
Вы можете использовать только один из этих символов, но что делать, если вы хотите использовать несколько конкретных символов?[И [первый знак ].
Правильные выражения: c[ab]t
Дополнительные тексты: cat cbt cet
Результаты после совпадения:cat cbt cet
Анализ:[ab] будет соответствовать “a” или “b”. Так что c[ab]t будет соответствовать “cat” и “cbt”, а не “cet”
В примере выше, если бы я хотел сопоставить cet,[Если я хочу, чтобы это соответствовало любым буквам, то я могу написать десятки букв. Это возможно, но слишком долго.[a-z]:
Правильные выражения: c[a-z]t
Дополнить текст: cat cbt czt c2t
Результаты после совпадения:cat cbt czt c2t
Анализ:[a-z]t означает любую букву, начинающуюся на “c”, заканчивающуюся на “t” и промежуточную на буквы “a” - “z”.
Похожие разделы:
[0-9] и[0123456789] имеет такую же функцию. [A-F] совпадает с буквами от A до F. [A-Z] совпадает со всеми заглавными буквами от A до Z. [a-z] совпадает со всеми символами нижней буквы от a до z. [A-z] совпадает со всеми символами в ASCII от A до ASCII z (не только совпадает со всеми буквами, но и совпадает с символами в таблице ASCII от A до z, например[^ и т. д.) [A-Za-z0-9] Совпадает со всеми малыми буквами и цифрами.
Набор символов обычно используется для указания набора символов, которые должны быть сопоставлены. Однако иногда вы хотите исключить набор символов, которые вы не хотите сопоставлять. Это может быть достигнуто путем отрицания набора символов.
Правильные выражения: c[^a-z]t
Дополнить текст: cat cbt czt c2t cAt
Результаты после матча: cat cbt czt c2t cAt
Анализ: Это полная противоположность предыдущему примеру.[[a-z] соответствует всем маленьким буквам, а [^a-z] Совпадает со всеми символами, не являющимися малыми буквами.
Примечание: ^ символы отменяют совпадение всех символов в наборе символов.
Первичные символы имеют особое значение в регулярных выражениях, о которых мы уже говорили, например.[И] эти символы не могут непосредственно выражать свой смысл, например, не могут быть использованы непосредственно[Совпадает”.[“Используйте. чтобы соответствовать”.
Все мета-символы могут быть переведены с помощью обратной скобки, и после перевода символ будет соответствовать самому себе, а не его особому значению. Например,[Совпадение”.[ “:
Правильные выражения: a[b
Текст, к которому нужно присоединиться:[b ab a[[b
Результаты после совпадения:a[b ab a[[b
Примечание: \ используется для перевода знака препинания, что также означает, что \ также является символом препинания. Поэтому, если нужно сопоставить истинный ” \ “, можно использовать\:
Правильные выражения: a\b
Текст, к которому нужно присоединиться:\b a\b a[[b
Результат после совпадения: a\b a\b a[[b
Иногда вам может понадобиться сопоставить пустые символы, которые не могут быть напечатаны в тексте. Например, вы хотите найти все символы Tab или все символы переменных. Вы можете использовать специальные мета-символы в следующей таблице:

Например, \r\n будет соответствовать комбинации обратной смены, и в Windows будет представлять собой файл смены. В Linux и Unix системах требуется только \n.
Существуют специальные мета-символы, которые можно использовать для сопоставления общепринятых наборов символов. Эти мета-символы называются сопоставимыми классами символов. Вы найдете их очень удобными для использования.
Соответствующие цифры или не соответствующие цифрам Как уже было сказано выше,[0-9] можно сопоставить все цифры. Если вы не хотите сопоставлять ни одну цифру, вы можете использовать[В таблице ниже перечислены цифровые и нецифровые кластеры:

Регулярные выражения: c\dt
Дополнить текст: cat c2t czt c9t
Результаты поиска: catc2t czt c9t
Правильное выражение: c\Dt
Дополнить текст: cat c2t czt c9t
Результаты после совпадения:cat c2t czt c9t
Сопоставление буквенных и небуквенных символов
Другой часто используемый мета-символ класса - \w и \W:

Регулярные выражения: c\wt
Дополнить текст: cat c2t czt c-t c\t
Результаты после совпадения:cat c2t c-t c\t
Правильные выражения: c\Wt
Дополнительные тексты: cat c2t c-t c\t
Результат после совпадения: cat c2tc-t c\t
Сопоставление пустого и непустого
Последнее совпадение, которое мы увидим, - это пустые класса:

Регулярные выражения: c\st
Ответить на сообщение
Результаты поиска: catc t c2t c\t
Правильное выражение: c\St
Ответить на сообщение
Результаты после совпадения:cat c t c2t c\t
Знак + означает соответствие одного или нескольких символов. Например, a будет соответствовать “a”, а a+ - одному или нескольким “a”.
Регулярное выражение: cat
Текст, ожидающий совпадения: ct cat caat caaat
Результаты после совпадения: ctcat caat caaat
Правильное выражение: ca+t
Текст, ожидающий совпадения: ct cat caat caaat
Результаты после совпадения: ctcat caat caaat
При использовании + в наборе символов, символ + должен находиться за пределами набора:
Правильные выражения: c[0-9]+t
Текст, ожидающий совпадения: ct c0t cat c123t
Результаты после совпадения: ctc0t cat c123t
Анализ:[0-9]+t означает строку, начинающуюся на “c”, заканчивающуюся на “t” и состоящую из одного или нескольких цифр.
Конечно же.[0-9+] также является законным правильным выражением, но оно обозначает набор символов, содержащих символы “0” - “9” и “+”.
В общем, мета-символы, такие как . и +, используются в качестве буквальных значений, когда используются в качестве наборов символов, поэтому нет необходимости переводить.[0-9+] и[0-9+[] выполняет ту же функцию.
Примечание: “+” - это мета-символ, для соответствия “+” требуется использовать перевод.+。
Если вы хотите сопоставить ноль или больше символов, вы можете использовать*Первичный знак
Регулярное выражение: ca*t
Ожидается сопоставление текста: ct cat caat cbt
Результаты после совпадения:ct cat caat cbt
Уведомление:Символ - это мета-символ. Для того, чтобы соответствовать “”, необходимо сделать перевод.*。
? совпадает с нулями или с одним символом. Так, ? очень подходит для совпадения с одним из возможных символов в тексте.
Правильное выражение: ca?t
Ожидается сопоставление текста: ct cat caat cbt
Результаты после совпадения:ct cat caat cbt
Примечание: символ ? - это заимствованный знак. Для того, чтобы совпасть с символом ?, необходимо перевести его.?。
Регулярные выражения позволяют указать количество случаев совпадения. Количество случаев может быть указано между { и } . Примечание: { и } также являются заглавными знаками, и при использовании их в буквальном смысле требуется перевод.
Точное количество совпадений Чтобы указать количество совпадений, вы можете ввести число между { и }. Например, { 3 } будет совпадать с 3 раза предыдущими символами или набором:
Правильное выражение: ca{3}t
Ct cat caaat cbt текст для сравнения
Результаты поиска: ct catcaaat cbt
Минимальное количество совпадений
Мы также можем указать только минимальные значения, которые совпадают. Например, {2,} означает совпадение 2 или более раз:
Регулярное выражение: ca{1,}t
Ct cat caaat cbt текст для сравнения
Результаты после совпадения: ctcat caaat cbt
Соответствие между измерениями
Мы также можем использовать минимальные и максимальные значения для определения количества совпадений. Например, {2,3} означает минимум 2 совпадения и максимум 3 совпадения.
Правильное выражение: ca{2,3}t
Ct cat caaat cbt текст для сравнения
Результаты поиска: ct catcaaat cbt
Итак? и {0,1} - это то же самое, что + и {1,} - это то же самое.
Посмотрите на следующие примеры:
Правильное выражение: s.*g Подпись: xiao song xiao song Результаты матча: xiao song xiao song Анализ: s.*Вместо того, чтобы сопоставлять две “songs”, как предполагалось, g сопоставляет все тексты между первой “s” и последней “g”.
Это потому что*И + - это жадные совпадения. То есть, правильные выражения всегда ищут наибольшую совпадение, а не наименьшее, что было преднамеренно разработано.
Но если вы не хотите быть жадным, то используйте не жадные сопоставления этих слов (как можно меньше символов).

*- Да. - Что?Не жадные версии, так что можно использовать? для изменения вышеприведенного примера:
Правильное выражение: s.?g
Подпись: xiao song xiao song
Результаты поиска: xiaosong xiao song
Анализ: можно увидеть s.?g совпадает с двумя песнями.
Мета-символы, которые соответствуют границам строки, - это ^ и $, используемые для начала и конца строки соответственно.
↑ Использование:
Правильное выражение: ^xiao
Комментарии к статье: Xiaosong
Результаты после совпадения:xiaosong
Текст, созванный для совместного использования: axiaosong Результаты после матча: axiaosong Анализ: ^xiao совпадает со строками, начинающимися с “xiao”.
$ используется следующим образом:
Официальное выражение: song$
Комментарии к статье: Xiaosong
Результаты поиска: xiaosong
Текст на английском языке: Xiaosonga Результаты после матча: xiaoosonga Анализ: song$ совпадает со строкой, заканчивающейся словом “song”.
Общее использование:
Правильное выражение: ^[0-9a-zA-Z]{4,}$
Текст, ожидающий совпадения: a1b234ABC
Результаты после совпадения:a1b234ABC
+a1b23=4ABC текст для сравнения Результат после сопоставления: + a1b23=4ABC Анализ:[0-9a-zA-Z]{4,}$ совпадает со строкой, состоящей из цифр или букв, и число цифр больше, чем равно четырех цифр.
Примечание: ^ если находится в начале множества, значит отрицательно; если находится вне множества, то будет соответствовать началу строки.[^0-9] и ^[0-9] различие.
Однако можно использовать многострочный режим: в многострочном режиме регулярный экспрессионный движок использует запятую в качестве разделителя строки, где ^ соответствует началу текста или началу строки, а $ - концу текста или концу строки.
Попробуйте изменить предыдущий пример:
Правильное выражение: ((?m) ^[0-9a-zA-Z]{4,}$
Текст, ожидающий совпадения: a1b234ABC +a1b23=4ABC ABC123456
Результаты после совпадения:a1b234ABC
+a1b23=4ABC
ABC123456
Анализ:[0-9a-zA-Z]{4,}$ будет соответствовать строкам, состоящим из цифр или букв, и число цифр больше, чем четыре цифры.
Примечание: если используется многострочный режим, то знак ((?m) должен быть помещен в начале регулярного выражения。 (? m) не поддерживается в большинстве реализаций регулярных выражений. Некоторые реализации регулярных выражений также поддерживают использование начало \A для сопоставления строки и конец \Z для сопоставления строки.
Копировано из книги iOS_小松哥