Экземпляр регулярного выражения можно создать двумя способами. При одном способе для разделения регулярного выражения используется символ прямой косой черты (
/
), при другом — конструктор
new
. Например, эквивалентными являются следующие регулярные выражения:
var pattern1:RegExp = /bob/i;
var pattern2:RegExp = new RegExp("bob", "i");
Прямые косые черты отделяют регулярное выражение так же, как кавычки отделяют строковый литерал. Часть регулярного выражения, находящаяся внутри прямых косых черт, определяет
образец.
Регулярное выражение также может иметь в своем составе
флаги
, расположенные после конечной отделяющей черты. Эти флаги считаются частью регулярного выражения, но отделены от его образца.
При использовании конструктора
new
для определения регулярного выражения используются две строки. Первая строка определяет образец, а вторая строка — флаги, как показано в следующем примере:
var pattern2:RegExp = new RegExp("bob", "i");
При включении прямой косой черты
в состав
регулярного выражения, определенного использованием ограничителей прямой косой черты, прямой косой черте должен предшествовать символ перехода (
\
) обратной косой черты. Например, образцу
1/2
соответствует следующее регулярное выражение:
var pattern:RegExp = /1\/2/;
Чтобы включить кавычки
в состав
регулярного выражения, определенного конструктором
new
, перед кавычками необходимо добавить символ перехода
\
обратной косой черты (так же, как при определении любого строкового литерала). Например, образцу
eat at "joe's"
соответствуют следующие регулярные выражения:
var pattern1:RegExp = new RegExp("eat at \"joe's\"", "");
var pattern2:RegExp = new RegExp('eat at "joe\'s"', "");
В регулярных выражениях, определяемых использованием ограничителей прямой косой черты, не используйте символ обратной косой черты с кавычками. Аналогичным образом, в регулярных выражениях, определяемых конструктором
new
, не используйте символ перехода с прямыми косыми чертами. Следующие регулярные выражения эквивалентны; они определяют образец
1/2 "joe's"
:
var pattern1:RegExp = /1\/2 "joe's"/;
var pattern2:RegExp = new RegExp("1/2 \"joe's\"", "");
var pattern3:RegExp = new RegExp('1/2 "joe\'s"', '');
Также в регулярном выражении, которое определяется конструктором
new
, чтобы воспользоваться метапоследовательностью, которая начинается с символа обратной косой черты (
\
) (например,
\d
, что соответствует любой цифре), дважды введите символ обратной косой черты:
var pattern:RegExp = new RegExp("\\d+", ""); // matches one or more digits
В данном случае необходимо ввести символ обратной косой черты дважды, поскольку первый параметр метода конструктора
RegExp()
является строкой. В строковом литерале также необходимо дважды ввести символ обратной косой черты, чтобы он распознавался как единичный символ.
В разделах, приведенных ниже, описывается синтаксис для определения образцов регулярных выражений.
Дополнительные сведения о флагах см. в разделе «
Флаги и свойства
».