1. Tworzenie obiektu.
RegExp = Новый COMОбъект("VBScript.RegExp");
2. Właściwości.
| Właściwość | Typ danych | Opis | Wartość domyślna | Przykład |
|---|---|---|---|---|
| Global | Boolean | Sprawdzanie ciągu do pierwszego dopasowania wzorca (False) lub całego tekstu (True) | False |
|
| IgnoreCase | Boolean | Uwzględnianie (False) lub nieuwzględnianie (True) wielkości liter | False |
|
| MultiLine | Boolean | Tryb wielowierszowy (True) czy jednowierszowy (False) | False |
|
| Pattern | String | Używany wzorzec – wzór tekstu składający się ze zwykłych znaków i/lub specjalnych metaznaków |
|
3. Metody.
| Metoda | Opis | Wartość zwracana | Przykład |
|---|---|---|---|
| Replace(String, Substring) | Zastępowanie wystąpień pasujących do wzorca (właściwość Pattern) w oryginalnym ciągu na podany podciąg | Zmodyfikowany ciąg |
|
| Test(String) | Sprawdzenie zgodności ze wzorcem | Boolean |
|
| Execute(String) | Wyszukiwanie wystąpień pasujących do wzorca w oryginalnym ciągu | Kolekcja znalezionych podciągów w postaci obiektu agregatowego |
|
4. Metaznaki.
| Znaki | Opis | Przykład |
|---|---|---|
| \ | Wskazuje, że następny znak jest znakiem specjalnym. Sekwencja "\\" odpowiada "\", a sekwencja "\(" odpowiada "(". |
|
| ^ | Określa początek wejściowego ciągu znaków. Jeśli ustawiona jest właściwość Multiline, określa również pozycję bezpośrednio po "\n" (nowa linia) i "\r" (powrót karetki). |
|
| $ | Określa koniec wejściowego ciągu znaków. Jeśli ustawiona jest właściwość Multiline, określa również pozycję bezpośrednio przed "\n" (nowa linia) i "\r" (powrót karetki). |
|
| * | Określa zero lub więcej wystąpień znaków poprzedzających go. Odpowiednik {0,}. |
|
| + | Określa jedno lub więcej wystąpień znaków poprzedzających go. Odpowiednik {1,}. |
|
| ? | Określa zero lub jedno wystąpienie znaku poprzedzającego go. Odpowiednik {0,1}. Jeśli ten znak meta występuje bezpośrednio po konstrukcjach (*, +, ?, {n}, {n,}, {n,m}), powoduje to pewną zmianę algorytmu wyszukiwania według podanego wzorca, co zilustrowano w poniższym przykładzie. |
|
| {n} | Określa dokładną liczbę wystąpień znaków poprzedzających go. "n" to liczba całkowita nieujemna. |
|
| {n,} | Określa minimalną liczbę wystąpień znaków poprzedzających go. "n" to liczba całkowita nieujemna. "{0,}" jest równoważne "*", a "{1,}" jest równoważne "+". |
|
| {n,m} | Określa liczbę wystąpień znaków poprzedzających go (od - do). "n" i "m" to liczby całkowite nieujemne, przy czym n <= m. "{0,1}" jest równoważne "?". |
|
| . | Określa dowolny znak oprócz "\n" (nowa linia). Aby określić dowolny znak, w tym "\n", należy użyć "[\s\S]". |
|
| (wzorzec) | Zapisuje dopasowanie do wzorca w kolekcji SubMatches. Aby określić znaki "(" i ")", należy użyć "\(" i "\)". |
|
| (?:wzorzec) | Przydatne do łączenia części wzorca za pomocą znaku "|" ("lub"). Na przykład "gospod(?:in|za)" jest krótsze niż "gospodin|gospoda". NIE zapisuje dopasowania w kolekcji SubMatches. |
|
| (?=wzorzec) | "Windows(?=95|98)" dopasuje podciąg "Windows" w ciągu "Windows95", ale nie w ciągu "WindowsNT". Dalsze dopasowanie rozpoczyna się natychmiast, a nie po znakach zawartych w nawiasach. NIE zapisuje dopasowania w kolekcji SubMatches. |
|
| (?!wzorzec) | "Windows(?!95|98)" dopasuje podciąg "Windows" w ciągu "WindowsNT", ale nie w ciągu "Windows95". W pozostałych aspektach jest całkowicie analogiczne do "(?=wzorzec)". |
|
| x|y | Warunek "lub". "wz|przel" dopasuje "wz" i "przel". "(wz|prze)l" dopasuje "wznel" i "przel". |
|
| [abc] | Zbiór znaków. Znajduje dowolny z podanych znaków. |
|
| [^abc] | Zbiór wykluczający znaki. Znajduje dowolny znak spoza podanych. |
|
| [a-z] | Zakres znaków. Znajduje dowolny znak z zakresu. |
|
| [^a-z] | Zakres znaków wykluczających. Znajduje dowolny znak, który nie należy do zakresu. |
|
| \b \B | \b - Granica słowa, czyli pozycja między końcem słowa a spacją. \B - NIE granica słowa. |
|
| \d \D | \d - cyfra. Równoważne z [0-9]. \D - NIE cyfra. Równoważne z [^0-9]. |
|
| \w \W | \w - dowolny znak słowotwórczy, w tym znak podkreślenia. Równoważne z [A-Za-z0-9_]. \W - odwrotność "\w". Równoważne z [^A-Za-z0-9_]. |
|
| \s \S | \s - znak białego znaku. Równoważne z [\f\n\r\t\v]. \S - znak niebędący białym znakiem. Równoważne z [^\f\n\r\t\v]. |
|
| \cx | Znak sterujący. Parametr "x" znajduje się w zakresie A-Z lub a-z. Na przykład, "\cM" określa Control-M lub znak powrotu karetki, "\cJ" - nową linię, "\cL" - nową stronę, "\cI" - znak tabulacji, "\cK" - znak tabulacji pionowej. |
|
| \f | Znak nowej strony. Równoważne z "\x0c" i "\cL". | |
| \n | Znak nowej linii. Równoważne z "\x0a" i "\cJ". |
|
| \r | Znak powrotu karetki. Równoważne z "\x0d" i "\cM". |
|
| \t | Znak tabulacji. Równoważne z "\x09" i "\cI". |
|
| \v | Znak tabulacji pionowej. Równoważne z "\x0b" i "\cK". |
|
| \xn | Szesnastkowy kod ASCII znaku. Musi zawierać dokładnie dwa znaki. |
|
| \num | Odwołanie do poprzednich przypisanych (znalezionych) podciągów pasujących do wzorca (SubMatches). "num" - dodatnia liczba całkowita, numer dopasowania w kolekcji SubMatches; liczenie od jedynki. Na przykład, "(.)\1" określa dwa identyczne znaki występujące po sobie. |
|
| \un | Określa znak Unicode według jego szesnastkowego kodu. "n" - czterocyfrowy kod szesnastkowy. |
|
