Альтернация – термин в регулярных выражениях, которому в русском языке соответствует слово «ИЛИ». Она обозначается символом вертикальной черты |
и позволяет выбирать между вариантами.
Например, нам нужно найти языки программирования: HTML, PHP, Java и JavaScript.
Соответствующее регулярное выражение: html|php|java(script)?
.
Пример использования:
var reg = /html|php|css|java(script)?/gi
var str = "Сначала появился HTML, затем CSS, потом JavaScript"
alert( str.match(reg) ) // 'HTML', 'CSS', 'JavaScript'
Мы уже знаем похожую вещь – квадратные скобки. Они позволяют выбирать между символами, например gr[ae]y
найдёт gray
, либо grey
.
Альтернация работает уже не посимвольно, а на уровне фраз и подвыражений. Регэксп A|B|C
обозначает поиск одного из выражений: A
, B
или C
, причём в качестве выражений могут быть другие, сколь угодно сложные регэкспы.
Для указания границ альтернации используют скобки (...)
, например: before(XXX|YYY)after
будет искать beforeXXXafter
или beforeYYYafter
.
Комментарии
<code>
, для нескольких строк кода — тег<pre>
, если больше 10 строк — ссылку на песочницу (plnkr, JSBin, codepen…)