Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
23 lines (13 sloc) 1.69 KB

Альтернация (или) |

Альтернация -- термин в регулярных выражениях, которому в русском языке соответствует слово "ИЛИ". Она обозначается символом вертикальной черты pattern:| и позволяет выбирать между вариантами.

Например, нам нужно найти языки программирования: HTML, PHP, Java и JavaScript.

Соответствующее регулярное выражение: pattern:html|php|java(script)?.

Пример использования:

var reg = /html|php|css|java(script)?/gi

var str = "Сначала появился HTML, затем CSS, потом JavaScript"

alert( str.match(reg) ) // 'HTML', 'CSS', 'JavaScript'

Мы уже знаем похожую вещь -- квадратные скобки. Они позволяют выбирать между символами, например pattern:gr[ae]y найдёт match:gray, либо match:grey.

Альтернация работает уже не посимвольно, а на уровне фраз и подвыражений. Регэксп pattern:A|B|C обозначает поиск одного из выражений: A, B или C, причём в качестве выражений могут быть другие, сколь угодно сложные регэкспы.

Для указания границ альтернации используют скобки (...), например: pattern:before(XXX|YYY)after будет искать match:beforeXXXafter или match:beforeYYYafter.