Tworzenie instancji wyrażenia regularnego

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

Istnieją dwa sposoby tworzenia instancji wyrażenie regularnego. Jeden sposób używa znaków ukośnika zwykłego ( / ) w celu ujęcia wyrażenia regularnego; drugie używa konstruktora new . Na przykład: poniższe wyrażenia regularne są równoważne:

var pattern1:RegExp = /bob/i; 
var pattern2:RegExp = new RegExp("bob", "i");

Ukośniki zwykłe obejmują literał wyrażenia regularnego w taki sam sposób, w jaki cudzysłów obejmuje literał ciągu znaków. Fragment wyrażenia regularnego między zwykłymi ukośnikami definiuje wzorzec. Wyrażenie regularne może zawierać także flagi po ostatnim ukośniku obejmującym. Flagi są uwzględniane w wyrażeniu regularnym, ale są oddzielone od jego wzorca.

Podczas używania konstruktora new programista używa do definiowania wyrażenia regularnego dwóch ciągów znaków. Pierwszy ciąg definiuje wzorzec, a drugi ciąg definiuje flagi, co ilustruje poniższy przykład:

var pattern2:RegExp = new RegExp("bob", "i");

W wypadku umieszczenia zwykłego ukośnika do wyrażenia regularnego, które definiowane jest za pomocą zwykłych ukośników obejmujących, należy poprzedzić znak ukośnika zwykłego znakiem zmiany znaczenia — odwróconym ukośnikiem ( \ ). Na przykład: poniższe wyrażenie regularne dopasowuje wzorzec 1/2 :

var pattern:RegExp = /1\/2/;

Aby uwzględnić cudzysłowy w wyrażeniu regularnym, które definiowane jest za pomocą konstruktora new , należy dodać znak zmiany znaczenia — odwrócony ukośnik ( \ ) — przed cudzysłowem (tak, jak podczas definiowania literału String). Na przykład: poniższe wyrażenia regularne dopasowują wzorzec eat at "joe's" :

var pattern1:RegExp = new RegExp("eat at \"joe's\"", ""); 
var pattern2:RegExp = new RegExp('eat at "joe\'s"', "");

Nie należy używać znaku zmiany znaczenia — odwróconego ukośnika — z cudzysłowem w wyrażeniach regularnych, które definiowane są za pomocą zwykłych ukośników obejmujących. Podobnie nie należy używać znaku zmiany znaczenia ze znakami zwykłych ukośników w wyrażeniach regularnych zdefiniowanych za pomocą konstruktora new . Poniższe wyrażenia regularne są równoważne i definiują wzorzec 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"', '');

Także w wyrażeniu regularnym zdefiniowanym za pomocą konstruktora new , aby użyć metasekwencji, która rozpoczyna się znakiem ukośnika odwróconego ( \ ) np. \d (który dopasowuje dowolną cyfrę), należy wpisać znak ukośnika odwróconego dwukrotnie:

var pattern:RegExp = new RegExp("\\d+", ""); // matches one or more digits

W tym przypadku znak odwróconego ukośnika należy wpisać dwukrotnie, ponieważ pierwszy parametr metody konstruktora RegExp() jest ciągiem znaków, a w literale ciągu znaków znak odwróconego ukośnika należy wpisać dwukrotnie w celu rozpoznania go jako pojedynczego znaku odwróconego ukośnika.

W poniższej sekcji została opisana składnia do definiowania wzorców wyrażeń regularnych.

Więcej informacji o flagach zawiera sekcja Flagi i właściwości .