Latest web development tutorials

Регулярные выражения - Примеры

Простые выражения

Самая простая форма регулярного выражения, которая соответствует свой собственный обычный одиночный символ в строку поиска. Например, режим односимвольный, такие как A, будь то в строке поиска, где она всегда соответствует букве А. Ниже приведен пример регулярного выражения некоторых из отдельных символов:

/a/
/7/
/M/

Это могут быть объединены вместе, чтобы сформировать односимвольный многих великих выражений. Например, следующее регулярное выражение представляет собой комбинацию выражений односимвольными: а, 7 и М.

/a7M/

Обратите внимание, что ни один оператор конкатенации. Просто введите другой символ позади персонажа.

Символьные матчи

Точка (.) Соответствует строке в различных печатных и непечатных символов, только за одним исключением символов. Исключением является символ новой строки (\ п). Следующее регулярное выражение соответствует ААС, ABC, соотв АДЦ и т.д., а также A1C, A2C, AC, и # C:

/a.c/

Для того, чтобы соответствовать строку, содержащую имя файла, а также период (.) Является неотъемлемой частью входной строки, перед регулярным выражением в период плюс обратной косой черты (\) характер. Чтобы проиллюстрировать это, следующее регулярное выражение соответствует имяфайла.рсш:

/filename\.ext/

Эти выражения позволяют только соответствовать "любой" одиночный символ. В списке, возможно, потребуется, чтобы соответствовать определенный набор символов. Например, вы можете найти заголовки глав с цифрами (глава 1, глава 2, и так далее).

Выражения в скобках

Для того, чтобы создать список соответствующих групп символов, заключенный в квадратные скобки ([и]) размещение одного или нескольких отдельных символов внутри. Когда символ, заключенный в скобках, список называется "выражение скобки." Как и в любом другом месте, обычные символы представляют себя в скобки, то есть, оно совпадает с одним из своих собственных во входном тексте. Теряют смысл, когда вы оказываетесь в выражение в квадратных скобках большинство специальных символов. Но есть некоторые исключения, такие как:

  • Если] символ не первый, это конец списка. Для того, чтобы соответствовать списку] характер, поставить его на первое место, а затем в начале [спины.
  • \ Характер продолжает оставаться маскирующим. Чтобы соответствовать символ \, используйте \\.

Заключено в выражение в квадратных скобках совпадает только символ в регулярном выражении в один символ в этой позиции. Следующее регулярное выражение, соответствующее Глава 1, Глава 2, Глава 3, Глава 4 и Глава 5:

/Chapter [12345]/

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

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

/Chapter [1-5]/

При использовании в этом порядке, определенном диапазоне, как начальный и конечный значения включены в сферу. Примечание Важно также, в соответствии с порядком сортировки Unicode, значение должно начинаться в конце предыдущих значений.

Чтобы включить в выражение дефиса скобки, используйте один из следующих способов:

  • С обратной косой черты избежать его:
    [\-]
  • Дефис в начале или в конце списка в скобках. Следующие выражения соответствуют строчные буквы и дефис:
    [-a-z]
    [a-z-]
    
  • Создать диапазон, в этом диапазоне, то начальное значение меньше, чем дефис и символ конца равно или больше, чем дефисом. Следующие два регулярных выражения удовлетворяют этому требованию:
    [!--]
    [!-~]
    

Чтобы найти список или нет в рамках всех символов, установите каретку (^) в начале списка. Если какое-либо другое место в списке для вставки появляются символы, то он соответствует самому себе. Следующее регулярное выражение соответствует любому символу, 4 или 5 цифр и за его пределами:

/Chapter [^12345]/

В приведенном выше примере, выражение соответствует любым 3, 4 или 5 чисел и символов, отличных в девятом положении. Так, например, в главе 7 совпадение, глава 9 совпадение.

Приведенное выше выражение можно использовать дефис (-), чтобы указать:

/Chapter [^1-5]/

Типичное использование выражений в квадратных скобках, чтобы указать, какие заглавных и строчных букв или любое количество матчей. Следующее выражение определяет такое совпадение:

/[A-Za-z0-9]/

Замены и группировка

Заменить использование | характер для обеспечения связи между двумя или более альтернативных вариантов выбора. Например, названия глав можно продолжить регулярные выражения, чтобы вернуть более широкий диапазон, чем соответствует заголовок главы. Тем не менее, это не так просто, как вы могли бы подумать. Заменить матч | символ максимальное выражение какой-либо одной стороны.

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

/^Chapter|Section [1-9][0-9]{0,1}$/

К сожалению, указанное регулярное выражение соответствие строки либо первое слово в главе, или соответствие конца строки с Секцией слова и любых последующих цифр. Если входная строка Глава 22, то приведенное выше выражение соответствует только слово Глава. Если входная строка Раздел 22, то выражение соответствует § 22.

Для того, чтобы регулярные выражения легче контролировать, вы можете использовать скобки для ограничения объема замены, а именно, чтобы гарантировать, что это относится только к двум словам главы и раздела. Тем не менее, круглые скобки используются для создания подвыражения, и, возможно, захватить их для последующего использования, который описан в разделе о обратных ссылок. В силу сказанного выше регулярные выражения, чтобы добавить скобки место, он может сделать регулярные выражения Глава 1 или раздел 3.

Следующее регулярное выражение использует круглые скобки для группы и главы секции, для того, чтобы функционировать должным образом выражение:

/^(Chapter|Section) [1-9][0-9]{0,1}$/

Хотя эти выражения работают, но глава | Раздел скобки, будет ловить любой из двух слов в матче для последующего использования. Так как приведенное выше выражение только один набор скобок, так что только захватили A "суб-матчи."

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

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/

Кроме того :? экзон характер, другие два не-захвата метасимволами создать что-то под названием "опережения" матч. Форвард использование опережения? = Указано, оно соответствует в скобках соответствует шаблону регулярного выражения начальной точки строки поиска. Обратное использование опережения ?! указано, он совпадает в шаблоне регулярного выражения не соответствует строке, начинающейся строку поиска.

Например, предположим, что у вас есть документ, который содержит ссылки на Windows 3.1, Windows 95, Windows 98 и Windows NT ссылки на. Предположим далее, что вам необходимо обновить документ будет указывать на Windows 95, Windows 98 и Windows NT все ссылки изменено на Windows 2000. Следующее регулярное выражение (это первый пример прямого предсказания) соответствует Windows 95, Windows 98 и Windows NT:

/Windows(?=95 |98 |NT )/

Найти матч, матч будет немедленно искать следующий матч в тексте (не включая символы) в условных после. Например, если приведенное выше выражение соответствует Windows 98, вместо этого продолжать поиск через 98 после Windows.

Другие примеры

Вот несколько примеров регулярных выражений:

正则表达式 描述
/\b([a-z]+) \1\b/gi 一个单词连续出现的位置。
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径。
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/ 定位章节的位置。
/[-a-z]/ a至z共26个字母再加一个-号。
/ter\b/ 可匹配chapter,而不能匹配terminal。
/\Bapt/ 可匹配chapter,而不能匹配aptitude。
/Windows(?=95 |98 |NT )/ 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。
/^\s*$/ 匹配空行。
/\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。
/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/ 匹配 HTML 标记。