Szybka tabela składni wyrażeń regularnych

Wyrażenie regularne, znane również jako wyrażenie reguły, to wzór tekstowy używany zazwyczaj do wyszukiwania, zastępowania i kontrolowania tekstu. Zwykle obejmuje litery od a do z oraz kilka specjalnych znaków metakarakterów. Zakres zastosowania wyrażeń regularnych jest niezwykle szeroki, pierwotnie spopularyzowane przez Unix, a później szeroko używane w językach takich jak Scala, PHP, C#, Java, C++, Objective-C, Perl, Swift, VBScript, JavaScript, Ruby i Python itd. Nauka wyrażeń regularnych to tak naprawdę nauka bardzo elastycznego sposobu myślenia logicznego, które umożliwia szybkie i proste osiągnięcie kontroli nad ciągami znaków.
Znaki regularne Opis
\ Oznacza, że następny znak jest specjalnym znakiem, lub znakiem literalnym, lub odniesieniem do poprzedniego dopasowania, lub ósemkowym kodem. Na przykład, "n" pasuje do znaku "n". "\n" pasuje do znaku nowej linii. Łańcuch "\\" pasuje do "\" i "\(" pasuje do "(".
^ Pasuje do początku ciągu wejściowego. Jeśli atrybut Multiline obiektu RegExp jest ustawiony, ^ pasuje również do pozycji po "\n" lub "\r".
$ Pasuje do końca ciągu wejściowego. Jeśli atrybut Multiline obiektu RegExp jest ustawiony, $ pasuje również do pozycji przed "\n" lub "\r".
* Pasuje do wyrażenia poprzedzającego, zero lub więcej razy. Na przykład, zo* pasuje do "z" oraz "zoo". * jest równoważne {0,}.
+ Pasuje do wyrażenia poprzedzającego, raz lub więcej razy. Na przykład, "zo+" pasuje do "zo" oraz "zoo", ale nie pasuje do "z". + jest równoważne {1,}.
? Pasuje do wyrażenia poprzedzającego, zero lub jeden raz. Na przykład, "(do(es)?)" może pasować do "does" lub "do" w "does". ? jest równoważne {0,1}.
{n} n to liczba całkowita nieujemna. Pasuje do określonej liczby n. Na przykład, "o{2}" nie pasuje do "Bob", ale pasuje do podwójnego "o" w "food".
{n,} n to liczba całkowita nieujemna. Pasuje co najmniej n razy. Na przykład, "o{2,}" nie pasuje do "Bob", ale pasuje do wszystkich o w "foooood". "o{1,}" jest równoważne "o+". "o{0,}" jest równoważne "o*".
{n,m} m i n to liczby całkowite nieujemne, gdzie n<=m. Pasuje co najmniej n razy i maksymalnie m razy. Na przykład, "o{1,3}" pasuje do trzech pierwszych o w "fooooood". "o{0,1}" jest równoważne "o?". Należy pamiętać, aby nie wstawiać spacji między przecinkiem a dwoma liczbami.
? Gdy ten znak bezpośrednio następuje po jakimkolwiek innym ograniczniku (*, +, ?, {n}, {n,}, {n,m}), wzorzec jest nienałogowy. Wzorzec nienałogowy stara się dopasować jak najmniej znaków do szukanego łańcucha, podczas gdy domyślny wzorzec nałogowy próbuje dopasować jak najwięcej. Na przykład, dla łańcucha "oooo", "o+?" dopasuje pojedyncze "o", podczas gdy "o+" dopasuje wszystkie "o".
. Pasuje do dowolnego pojedynczego znaku z wyjątkiem "\n". Aby dopasować dowolny znak, w tym "\n", użyj wzorca takiego jak "(.|n)".
(pattern) Pasuje do wzorca i otrzymuje to dopasowanie. Dopasowanie to można uzyskać ze zbioru dopasowań, w VBScriptu używa się zbioru SubMatches, w JScript $0…$9. Aby dopasować znaki okrągłe, użyj "\(" lub "\)".
(?:pattern) Pasuje do wzorca, ale nie uzyskuje wyniku dopasowania, innymi słowy jest to dopasowanie bez przechwytywania, które nie jest zapisywane do późnego użycia. To jest przydatne, gdy używasz znaku '|' do łączenia różnych części wzorca. Na przykład "(industr(?:y|ies))" to bardziej zwięzły wyraz niż "industry|industries".
(?=pattern) Pozytywne sprawdzenie, pasuje do szukającego, jeśli na początku jest dopasowany wzorzec. To jest dopasowanie bez przechwytywania, co znaczy, że nie potrzebujesz go do późnego użycia. Na przykład, "Windows(?=95|98|NT|2000)" może pasować do "Windows" w "Windows2000", ale nie może pasować do "Windows" w "Windows3.1". Sprawdzanie nie przeszukuje znaków, co oznacza, że po dopasowaniu następne poszukiwanie zaczyna się zaraz po ostatnim dopasowaniu, a nie od znaków następujących po sprawdzeniu.
(?!pattern) Negatywne sprawdzenie, dopasowuje wyszukujące znaki na początku, jeśli nie pasuje do wzorca. To jest dopasowanie bez przechwytywania, co znaczy, że nie potrzebujesz go do późnego użycia. Na przykład "Windows(?!95|98|NT|2000)" pasuje do "Windows" w "Windows3.1", ale nie pasuje do "Windows" w "Windows2000". Sprawdzanie nie przeszukuje znaków, co oznacza, że po dopasowaniu następne poszukiwanie zaczyna się zaraz po ostatnim dopasowaniu, a nie od znaków następujących po sprawdzeniu.
(?<=pattern) Pozytywne sprawdzenie wsteczne, podobne do pozytywnego sprawdzenia, jednak w przeciwnym kierunku. Na przykład "(?<=95|98|NT|2000)Windows" pasuje do "Windows" w "2000Windows", ale nie pasuje do "Windows" w "3.1Windows".
(?<!pattern) Negatywne sprawdzenie wsteczne, podobne do negatywnego sprawdzenia, jednak w przeciwnym kierunku. Na przykład "(?<!95|98|NT|2000)Windows" pasuje do "Windows" w "3.1Windows", ale nie pasuje do "Windows" w "2000Windows".
x|y Pasuje do x lub y. Na przykład, "z|food" może pasować do "z" lub "food". "(z|f)ood" zatem pasuje do "zood" lub "food".
[xyz] Zbiór znaków. Pasuje do dowolnego ze znaków w zbiorze. Na przykład, "[abc]" może pasować do "a" w "plain".
[^xyz] Ujemny zbiór znaków. Pasuje do dowolnego znaku, który nie jest w zbiorze. Na przykład, "[^abc]" może pasować do "p" w "plain".
[a-z] Zasięg znaków. Pasuje do dowolnego znaku w określonym zakresie. Na przykład, "[a-z]" może pasować do każdej małej litery od "a" do "z".
[^a-z] Ujemny zakres znaków. Pasuje do każdego znaku, który nie jest w określonym zakresie. Na przykład, "[^a-z]" może pasować do każdego znaku, który nie jest w zakresie od "a" do "z".
\b Pasuje do granicy słowa, co oznacza, że to jest pozycja między słowem a spacją. Na przykład, "er\b" może pasować do "er" w "never", ale nie może pasować do "er" w "verb".
\B Pasuje do nie-granicy słowa. "er\B" pasuje do "er" w "verb", ale nie pasuje do "er" w "never".
\cx Pasuje do kontrolnego znaku, wskazanego przez x. Na przykład, \cM pasuje do Control-M lub powrotu. x musi być jedną z liter od A do Z lub od a do z. W przeciwnym razie, \c jest traktowane jako znak literalny "c".
\d Pasuje do znaku liczbowego. To jest równoważne [0-9].
\D Pasuje do znaku nieliczbowego. To jest równoważne [^0-9].
\f Pasuje do znaku nowej strony. To jest równoważne \x0c i \cL.
\n Pasuje do znaku nowej linii. To jest równoważne \x0a i \cJ.
\r Pasuje do znaku powrotu. To jest równoważne \x0d i \cM.
\s Pasuje do dowolnego znaku białego. W tym spacje, tabulatory, znaki nowej linii itd. To jest równoważne [\f\n\r\t\v].
\S Pasuje do dowolnego znaku nienałogowego. To jest równoważne [^ \f\n\r\t\v].
\t Pasuje do znaku tabulacji. To jest równoważne \x09 i \cI.
\v Pasuje do znaku pionowej tabulacji. To jest równoważne \x0b i \cK.
\w Pasuje do dowolnego znaku słowa, w tym podkreślenia. To jest równoważne "[A-Za-z0-9_]".
\W Pasuje do dowolnego znaku nienałogowego. To jest równoważne "[^A-Za-z0-9_]".
\xn Pasuje do n, w którym n jest szesnastkowym kodem. Szesnastkowy kod musi mieć określoną długość dwóch cyfr. Na przykład, "\x41" pasuje do "A". "\x041" jest równoważne "\x04&1". W wyrażeniach regularnych można używać kodów ASCII.
\num Pasuje do num, gdzie num jest dodatnią liczbą całkowitą. Odniesienie do uzyskanego dopasowania. Na przykład, "(.)\1" pasuje do dwóch kolejnych identycznych znaków.
\n Identyfikuje ósemkowy kod lub odniesienie do poprzedniego dopasowania. Jeśli \n poprzedza co najmniej \n uzyskanych podwyrażeń, to ósemka. W przeciwnym razie, jeśli n to liczba ósemkowa (0-7), to oznacza ósemkowy kod.
\nm Identyfikuje ósemkowy kod lub odniesienie do poprzedniego dopasowania. Jeśli nm poprzedza co najmniej nm uzyskanych podwyrażeń, to jest odniesieniem do poprzedniego dopasowania. Jeśli nm poprzedza co najmniej n uzyskanych, to n będzie odniesieniem do znaku m. Jeśli żadne z tych warunków nie jest spełnione, a n i m są wszystkim kodami ósemkowymi (0-7), wtedy \nm będzie pasować do ósemkowego kodu nm.
\nml Jeśli n to liczba ósemkowa (0-3) i m i l to liczby ósemkowe (0-7), to dopasowuje ósemkowy kod nml.
\un Pasuje do n, w którym n jest znakiem Unicode reprezentowanym przez cztery cyfry szesnastkowe. Na przykład, \u00A9 pasuje do znaku praw autorskich (©).
Często używane wyrażenia regularne
Nazwa użytkownika /^[a-z0-9_-]{3,16}$/
Hasło /^[a-z0-9_-]{6,18}$/
Hasło 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (musi zawierać cyfry/wielkie litery/małe litery/znaki przestankowe, wszystkie cztery, co najmniej 8 znaków)
Wartości szesnastkowe /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
E-mail /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ lub \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ lub [a-zA-z]+://[^\s]*
Adres IP /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?[0-9][0-9]?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ lub ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?[0-9][0-9]?)
Tagi HTML /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/lub <(.*)(.*)>.*<\/\1>|<(.*) \/>
Usuwanie kodów\\ komentarzy (?<!http:|\S)//.*$
Dopasowanie znaków podwójnych (w tym 汉字) [^\x00-\xff]
汉字 (znaki) [\u4e00-\u9fa5]
Zakres 汉字 w kodowaniu Unicode /^[\u2E80-\u9FFF]+$/
Chińskie oraz pełne znaki interpunkcyjne (znaki) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Data (rok-miesiąc-dzień) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Data (miesiąc/dzień/rok) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Czas (godzina:minuta, 24-godzinny format) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Numer telefonu stacjonarnego w Chinach (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Numer telefonu komórkowego w Chinach 1\d{10}
Kod pocztowy w Chinach [1-9]\d{5}
Numer dowodu osobistego w Chinach (15 lub 18 cyfr) \d{15}(\d\d[0-9xX])?
Liczby całkowite nieujemne (liczby dodatnie lub zero) \d+
Liczby całkowite dodatnie [0-9]*[1-9][0-9]*
Liczby całkowite ujemne -[0-9]*[1-9][0-9]*
Liczby całkowite -?\d+
Liczby dziesiętne (-?\d+)(\.\d+)?
Puste linie \n\s*\r lub \n\n(editplus) lub ^[\s\S ]*\n
Numer QQ [1-9]\d{4,}
Słowa, które nie zawierają abc \b((?!abc)\w)+\b
Dopasowanie białych znaków na początku i na końcu ^\s*|\s*$
Edycja często używana
Oto kilka zamienników dla szczególnych chińskich znaków (editplus)
^[0-9].*\n
^[^第].*\n
^[习题].*\n
^[\s\S ]*\n
^[0-9]*\.
^[\s\S ]*\n
<p[^<>*]>
href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'"
<span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span>
<DIV class=xs0>[\s\S]*?</DIV>

Szybki przewodnik po składni wyrażeń regularnych - Często używane techniki i składnia wyrażeń regularnych

Wyrażenia regularne to potężne narzędzie do przetwarzania tekstu, ta strona zapewnia szybki przewodnik po składni wyrażeń regularnych, który pomoże Ci szybko zrozumieć podstawową składnię wyrażeń regularnych, modyfikatory, podwyrażenia, tryby nałogowe i nienałogowe itp.

Podstawowa składnia wyrażeń regularnych

Wyrażenia regularne są używane do opisywania zasad wzorców łańcuchów, powszechnie występująca podstawowa składnia obejmuje:

Często używane modyfikatory wyrażeń regularnych

Modyfikatory wyrażeń regularnych służą do zmiany zasad dopasowania wyrażeń regularnych, powszechnie występujące modyfikatory obejmują:

Tryby nałogowe i nienałogowe

W wyrażeniach regularnych, ilościowe modyfikatory domyślnie są nałogowe, będą próbować pasować do jak największej ilości znaków. Tryb nienałogowy można używać, dodając ? za modyfikatorem ilościowym, przykłady poniżej:

Podwyrażenia i grupy

Podwyrażenia w wyrażeniach regularnych są definiowane za pomocą nawiasów (()), zwykle używane do wyodrębnienia dopasowanej części. Grupowanie osiąga się poprzez znak "|". Na przykład:

Szybkie wyszukiwanie wyrażeń regularnych

Poniżej znajduje się szybkie wyszukiwanie często używanych wyrażeń regularnych:

Funkcjonalność Wyrażenie regularne
Dopasuj cyfrę \d
Dopasuj nieliczbowe znaki \D
Dopasuj litery [a-zA-Z]
Dopasuj dowolny znak .
Dopasuj białe znaki \s

Zastosowania wyrażeń regularnych

Wyrażenia regularne znajdują szerokie zastosowanie w następujących przypadkach:

Wskazówki do nauki wyrażeń regularnych

Natychmiast skorzystaj z naszego szybkiego przewodnika po składni wyrażeń regularnych, aby efektywniej tworzyć wyrażenia regularne i poprawić swoje umiejętności przetwarzania tekstu!

Twoje ścieżki:
Wybierz język