GNU/Linux >> Znalost Linux >  >> Linux

Regex Cheat Sheet/Základy

Regex Cheat Sheet/Basics

Regulární výrazy (regex nebo regexp) jsou velmi užitečným nástrojem k identifikaci konkrétních vzorů v jakémkoli textu, což pomáhá extrahovat informace bez ohledu na formát textu.

Regex lze použít k ověřování vstupů, odstraňování webových stránek, hledání konkrétních řetězců v dokumentech, ověřování syntaxe pro kompilátory a mnoho dalších příkladů.

Regex je široce používán ve více programovacích jazycích používajících téměř stejnou syntaxi, takže tento článek předstírá, že ukazuje základní operátory regulárních výrazů.

Následující části ukáží různé operátory používané pro regulární výrazy a některé příklady. Na této stránce můžete také otestovat své regulární výrazy s jejich vysvětlením.

Kotvy

Znaky Použít
^ Označuje začátek řetězce. Bude odpovídat pouze řetězci, který začíná znakem (znaky), který následuje
$ Označuje konec řetězce. To bude odpovídat libovolnému řetězci, který končí znakem (znaky) před symbolem „$“
abc Odpovídá libovolnému řetězci, který obsahuje sekvenci znaků „abc“

Některé příklady jsou:

Příklad Popis Příklady shodných řetězců
^A Odpovídá všem řetězcům, které začínají na A A n jablko je na stromě“, „A nová restaurace”
end$ Odpovídá řetězci, který končí posloupností znaků „end“ konec “, „Pojďme tokončíme
^Ahoj světe$ Přesně se shoduje s řetězcem „Ahoj světe“ Ahoj světe
objednávka Odpovídá libovolnému řetězci, který obsahuje text ‚objednávka‘ „Moje objednávka číslo je 54”

Kvantifikátory

Kvantifikátory se používají k vyjádření časů, kdy chceme, aby se předchozí znak nebo skupina znaků objevila v naší shodě.

Znaky Použít
* Označuje nulu nebo více
+ Označuje jeden nebo více
? Označuje nulu nebo jedničku
x{n} Slouží k určení, kolikrát („n“) se má objevit předchozí znak („x“)
x{n, } Používá se k určení minimálního počtu (‚n‘), kdy se má objevit předchozí znak (‘x‘)
x{n, m} Slouží k určení minimálního („n“) a maximálního („m“), kolikrát by se měl objevit předchozí znak („x“)

Některé příklady jsou:

Příklad Popis Příklady shodných řetězců
ahoj!* Odpovídá libovolnému řetězci „ahoj“, po kterém následuje nula nebo více znaků „!“ ahoj “, „ahoj! “, ahoj!!
ahoj!+ Odpovídá libovolnému řetězci „ahoj“, po kterém následuje jeden nebo více znaků „!“ ahoj! “, „ahoj!!
ahoj!? Odpovídá libovolnému řetězci „ahoj“, po kterém následuje nula nebo jeden znak „!“ ahoj “, „ahoj!
(ha){2,4} Odpovídá libovolnému řetězci, který dvakrát až čtyřikrát opakuje skupinu znaků „ha“ haha “, „hahaha “, „hahahaha

Operátor NEBO

Znaky Použít
a|b Odpovídá libovolnému řetězci, který obsahuje „a“ nebo „b“
[ ] Používá se k reprezentaci seznamu, takže odpovídá řetězci, který obsahuje jeden ze znaků v seznamu

Některé příklady jsou:

Příklad Popis Příklady shodných řetězců
se(a|e) Odpovídá libovolnému řetězci, který obsahuje text „se“ následovaný „a“ nebo „e“ viz “, „moře
a[bcd] Odpovídá libovolnému řetězci, který obsahuje „a“ následované „b“, „c“ nebo „d“ ab “, „ac “, „reklama

Třídy znaků

Operátory tříd znaků vám umožňují porovnat znaky v rámci kategorie (třídy). Tyto operátory nabízejí své negace, které jsou stejné jako normální operátor, ale jsou napsány velkými písmeny.

Znaky Použít
\d Odpovídá jedné číslici znak
\w Odpovídá jedinému slovu znak (písmena, čísla a podtržítko)
\s Odpovídá jednomu bílému místu znak, včetně tabulátorů a zalomení řádků
\D Odpovídá jedné jiné číslici znak
\W Odpovídá jednomu jinému slovu znak (písmena, čísla a podtržítko)
\S Odpovídá jednomu nebílému místu znak, včetně tabulátorů a zalomení řádků
. Odpovídá libovolnému jednotlivému znaku

Příznaky

Regex obvykle používá tvar /pattern/ . Nakonec můžeme použít následující příznaky:

Příznak Popis
g globální flag se používá k vyhledání všech jednotlivých shod uvnitř řetězce. Pokud není použit, výraz se vrátí po první shodě
m víceřádkový příznak umožňuje použít ^ a $ jako začátek a konec řádku, nikoli začátek a konec řetězce, který může obsahovat více řádků
i Necitlivé flag nerozlišuje v regulárním výrazu malá a velká písmena

Závěry

Regex má mnoho využití. Jednoduché operátory popsané v tomto článku můžete kombinovat a vytvářet složité vyhledávání vzorů. Jedním příkladem je ověření e-mailové adresy, což lze provést pomocí následujícího regulárního výrazu:

^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$

Tento příklad odpovídá úplnému řetězci, pro který hledá vzor v následujícím pořadí:

  • [\w-\.]+ :kombinace jednoho nebo více slovních znaků, pomlček nebo teček
  • @ :symbol @
  • ([\w-]+\.)+ :jedna nebo více kombinací jednoho nebo více slovních znaků nebo pomlček zakončených tečkou (pro domény a subdomény v e-mailu, jako je email.rackspace.)
  • [\w-]{2,4} :kombinace 2, 3 nebo 4 slovních znaků nebo pomlček pro koncovou část e-mailu (com)

Stejně jako tento příklad existuje mnoho dalších, které lze snadno implementovat pro různé účely.


Linux
  1. Praktický cheat pro systémového administrátora pro SELinux

  2. Jak používat Tmux + Cheat Sheet

  3. Cheat sheet příkazů IPtables

  1. Cheat Sheet pro příkaz Yum

  2. Základní příkazy vi (cheat sheet)

  3. Příklady příkazů připojení iSCSI (cheat Sheet)

  1. Cheat sheet pro běžné linuxové příkazy

  2. Představujeme Groff Macros cheat sheet

  3. Cheat Sheet pro základní příkazy Linuxu