Latest web development tutorials

Wyrażenia regularne - Przykłady

proste wyrażenia

Najprostszą formą wyrażenia regularnego, który pasuje własną zwykły pojedynczy znak w ciągu wyszukiwania. Na przykład, tryb single-znakowy, takich jak A, czy w ciągu wyszukiwania, gdzie zawsze dopasowuje literę A. Poniżej znajduje się przykład regularny wzór ekspresji niektórych pojedynczych znaków:

/a/
/7/
/M/

mogą być one łączone ze sobą w celu wytworzenia pojedynczej postaci wielu wspaniałych wyrażeń. Na przykład: poniższe wyrażenie regularne jest połączeniem wyrażeń pojedynczych znaków: a, 7 i M.

/a7M/

Należy zauważyć, że żaden operator konkatenacji. Wystarczy wpisać inny znak za znakiem.

Charakter mecze

Dot (.) Dopasowuje ciąg w różnych drukowanych i innych znaków drukarskich, jednym tylko wyjątkiem znaków. Wyjątkiem jest znak nowej linii (\ n). Poniższe wyrażenie regularne dopasowuje aac, ABC, ACC, ADC, etc., jak również HbA1c, A2C, AC, i C #:

/a.c/

Aby dopasować ciąg zawierający nazwę pliku, a kropkę (.) Jest integralną częścią łańcucha wejściowego, w przedniej części wyrażenia regularnego w okresie plus znaku backslash (\). Aby to zilustrować, poniższe wyrażenie regularne dopasowuje nazwa_pliku.ext:

/filename\.ext/

Wyrażenia te tylko pozwalają dopasować "żadnej" pojedynczy znak. Lista może trzeba dopasować określony zestaw znaków. Na przykład, może chcesz znaleźć nagłówki rozdziałów z cyframi (rozdział 1, rozdział 2, i tak dalej).

Wyrażenia w nawiasach

Aby utworzyć listę pasujących grupy znaków w nawiasach kwadratowych ([i]) umieszczenie jednego lub więcej pojedynczych znaków wewnątrz. Gdy postać w nawiasach lista nazywa się "wyrazem nawias". Jak w każdym innym miejscu, zwykli bohaterowie reprezentują się w nawiasach, to znaczy, że pasuje do jednego z własnych w tekście wejściowym. Tracą swoje znaczenie, gdy pojawiają się w wyrażeniu Wspornik znaków najbardziej wyjątkowych. Ale istnieją pewne wyjątki, takie jak:

  • Jeśli] charakter nie jest pierwszą, to jest koniec listy. Aby dopasować LIST] postać, umieścić go w pierwszej kolejności, a następnie na początku [plecach.
  • \ Charakter nadal jest znak ucieczki. Aby dopasować znak \, użyj \\.

Zamknięta w meczu ekspresji Wspornik tylko znaków w wyrażeniu regularnym w jednym znaku w tej pozycji. Poniższe wyrażenie regularne pasujące Rozdział 1 Rozdział 2 Rozdział 3 Rozdział 4 Rozdział 5 oraz:

/Chapter [12345]/

Proszę zauważyć, że położenie na powierzchni po słowie rozdziału, w odniesieniu do charakteru w nawiasach są wartościami stałymi. Uchwyt pasuje wyrażenie określa tylko jedną pozycję znaku zaraz po wyrazie rozdziału oraz przestrzeni za zestaw znaków. Jest to dziewiąta pozycja znaku.

Aby skorzystać z szeregu zamiast znaków sobą reprezentować pasujący zestaw znaków, należy użyć myślnika (-) w zakresie od znaku startu i charakteru końcowego oddzielnie. Wartość postaci w celu określenia względnej kolejności poszczególnych znaków w tym zakresie. Poniższe wyrażenie regularne zawiera wyrażenie zakresu wyrażenie jest równoważne zakresie przedstawionym powyżej w liście nawiasach.

/Chapter [1-5]/

Gdy stosuje się w ten sposób w określonym zakresie, zarówno na początku, a wartości końcowe są zawarte w tym zakresie. Uwaga: To jest ważne, w zależności od celu sortowania Unicode wartość musi rozpocząć się w końcu z poprzednich wartości.

Aby uwzględnić w wyrażeniu łącznikiem wspornika, użyj jednej z następujących metod:

  • Przy odwrotnym ukośnikiem go:
    [\-]
  • Myślnik na początku lub na końcu listy w nawiasach. Poniższe wyrażenia dopasować wszystkie małe litery i myślniki:
    [-a-z]
    [a-z-]
    
  • Tworzenie zakres w tym zakresie wartość początkowa jest mniejsza od charakteru łącznikiem i znaku końca jest równa lub większa od łącznika. Poniższe dwa wyrażenia regularne spełnić ten wymóg:
    [!--]
    [!-~]
    

Aby znaleźć listę, czy nie w zakresie wszystkich znaków, ustaw daszka (^) na początku listy. Jeśli w dowolnym innym miejscu na liście, aby wstawić pojawiają się znaki, to dopasowuje sam siebie. Poniższe wyrażenie regularne dopasowuje dowolny znak, 4 lub 5 cyfr i poza nim:

/Chapter [^12345]/

W powyższym przykładzie, wyrażenie pasuje do żadnych 3, 4 lub 5 cyfr i znaków innych niż w pozycji dziewiątej. Tak więc, na przykład, w rozdziale 7 jest dopasowana rozdział 9 jest dopasowanie.

Powyższe wyrażenie może użyć myślnika (-), aby wskazać:

/Chapter [^1-5]/

Typowym zastosowaniem wyrażenia wspornika jest określenie wszelkich wielkie lub małe litery lub dowolną liczbę meczów. Poniższe wyrażenie określa taki mecz:

/[A-Za-z0-9]/

Zastępstwa i grupowanie

Wymień korzystania | charakter, aby umożliwić komunikację między dwoma lub więcej alternatyw do wyboru. Na przykład, tytuły rozdziałów może być przedłużony wyrażeń regularnych, aby powrócić szerszy zakres niż mecze tytuł rozdziału. Jednak to nie jest tak proste jak mogłoby się wydawać. Wymień spotkań | znaków maksymalną ekspresję jednego boku.

Można by pomyśleć, że poniższe wyrażenie pasuje pojawia się na początku i na końcu linii, po jednym lub dwóch cyfr danego działu lub sekcji:

/^Chapter|Section [1-9][0-9]{0,1}$/

Niestety, powyższe wyrażenie regularne pasujące wiersze albo pierwsze słowo rozdział lub dopasowanie końcu linii z sekcji tekstu i ewentualnych kolejnych numerów. Jeśli ciąg wejściowy jest rozdział 22, to powyższe wyrażenie pasuje tylko słowo rozdział. Jeśli ciąg wejściowy jest rozdział 22, a następnie wyrażenie pasuje do sekcji 22.

Aby wyrażenia regularne są łatwiejsze do kontrolowania, można użyć nawiasów, aby ograniczyć zakres wymiany, a mianowicie, aby upewnić się, że ma ona zastosowanie jedynie do tych dwóch słów rozdział i sekcję. Jednak nawiasach są wykorzystywane do tworzenia podpotok ekspresji i może uchwycić je w celu późniejszego wykorzystania, który jest opisany w rozdziale o odniesienia do tyłu. Poprzez powyższe wyrażenia regularne, aby dodać nawiasów miejsce, może to uczynić wyrażenie regularne pasujące działem 1 lub sekcji 3.

Poniższe wyrażenie regularne korzysta z nawiasów do grupy rozdziału i sekcji, aby funkcjonować poprawnie wyrażenie:

/^(Chapter|Section) [1-9][0-9]{0,1}$/

Chociaż te wyrażenia działać, ale Rozdział | wsporniki Sekcja wokół złapie jednego z dwóch słów w meczu do późniejszego wykorzystania. Ponieważ powyższe wyrażenie jest tylko jeden zestaw nawiasów, tylko dlatego, że schwytany "subpartnera mecze."

W powyższym przykładzie, trzeba tylko użyć nawiasów, aby wybrać kombinację słów pomiędzy rozdziału oraz rozdziału. Aby zapobiec mecze mają być zapisywane do wykorzystania w przyszłości, przed regularny wzór wyrażenie jest umieszczone w nawiasach?:. Poniższa modyfikacja daje takie same możliwości bez zapisywania mecze podrzędne:

/^(?:Chapter|Section) [1-9][0-9]{0,1}$/

Ponadto :? eksonie charakteru, pozostałe dwa są metaznakami non-przechwytywanie stworzyć coś o nazwie "uprzedzona" mecze. Napastnik wykorzystanie uprzedzona = określono, że mecze w nawiasy pasuje do wzorca wyrażenia regularnego punktu początkowego ciągu wyszukiwania. Rewers korzystanie uprzedzoną ?! określono, że pasuje do wzorca wyrażenia regularnego nie odpowiada ciąg początkowy łańcuch wyszukiwania.

Na przykład, załóżmy, że masz dokument, który zawiera linki do Windows 3.1, Windows 95, Windows 98 i Windows NT odniesień. Załóżmy dalej, że trzeba zaktualizować dokument będzie wskazywać na Windows 95, Windows 98 i Windows NT wszystkie odniesienia zmieniono na Windows 2000. Poniższe wyrażenie regularne (jest to pierwszy przykład przodu przewidywania) pasuje do systemu Windows 95, Windows 98 i Windows NT:

/Windows(?=95 |98 |NT )/

Znajdź mecz, mecz zostanie natychmiast poszukać następnego meczu w tekście (nie wliczając znaków uprzedzona) po. Na przykład, jeśli powyższe wyrażenie dopasowane Windows 98, to zamiast kontynuować wyszukiwanie po 98 po Windows.

Inne przykłady

Oto kilka przykładów wyrażeń regularnych:

正则表达式 描述
/\b([a-z]+) \1\b/gi 一个单词连续出现的位置。
/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径。
/^(?:Chapter|Section) [1-9][0-9]{0,1}$/ 定位章节的位置。
/[-a-z]/ a至z共26个字母再加一个-号。
/ter\b/ 可匹配chapter,而不能匹配terminal。
/\Bapt/ 可匹配chapter,而不能匹配aptitude。
/Windows(?=95 |98 |NT )/ 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。
/^\s*$/ 匹配空行。
/\d{2}-\d{5}/ 验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。
/<\s*(\S+)(\s[^>]*)?>[\s\S]*<\s*\/\1\s*>/ 匹配 HTML 标记。