Regex alapok gyorsreferencia
A reguláris kifejezés (regex) egy szövegillesztő minta. Minden szimbólumot, amelyet tokennak hívunk, megváltoztatja a minta viselkedését. Az alábbi gyorsreferencia a leggyakoribb tokeneket sorolja fel egyszerű jelentéssel és kipróbálható példával.
| Szimbólum | Jelentés | Példa |
|---|---|---|
| . | Matches any single character except newline. | a.c matches abc, a c |
| * | Matches the preceding token zero or more times. | ab* matches a, abb |
| + | Matches the preceding token one or more times. | ab+ matches ab, abb |
| ? | Makes the preceding token optional (zero or one). | colou?r matches color, colour |
| [] | Character set: matches any one character inside. | [aeiou] matches any vowel |
| [^] | Negated set: matches any character NOT inside. | [^0-9] matches any non-digit |
| \d | Matches any digit (0-9). | \d+ matches 42, 007 |
| \w | Matches any word character (a-z, A-Z, 0-9, _). | \w+ matches hello_1 |
| \s | Matches any whitespace (space, tab, newline). | a\sb matches a b |
| ^ | Anchors the match to the start of a line/string. | ^Hello matches start of string |
| $ | Anchors the match to the end of a line/string. | world$ matches end of string |
| | | Alternation: matches the pattern on either side. | cat|dog matches cat or dog |
| () | Groups a sub-pattern (and captures it). | (ab)+ matches ab, abab |
| {n,m} | Quantifier: match the preceding token n to m times. | a{2,4} matches aa, aaaa |
| (?i) | Inline flag: makes the pattern case-insensitive. | (?i)hello matches HELLO |
Megjegyzések
- A legtöbb szimbólum elveszíti speciális jelentését a karakterosztályban [ ]. Például a . a [ ] belsejében csak sima pontnak felel meg.
- A visszacsapott (\) az escape-karakter: speciális szimbólumot literálissá alakít, és fordítva.
- A motorok különböznek: a Python, JavaScript, PCRE és Golang többnyire közös tokeneket használ, de a zászlók és a look-around eltérhet.
Gyakori kérdések
- Mivel egyezik meg a pont (.) ?
- Alapértelmezés szerint a pont bármely egyetlen karakterre illeszkedik a sorvégjel kivételével. A pont literálhoz való illesztéséhez \-sel kell előjelnizi.
- Mi a különbség a * és a + között?
- A csillag * a megelőző szimbólummal nulla vagy több alkalommal illeszkedik, így az 'ab*' az 'a'-ra is illik. A plusz + legalább egyet igényel, illik az 'ab'-re, de nem csak az 'a'-ra.
- Hogyan illesztek számjegyre vagy szókarakterre?
- Használj \d-ot bármely számjegyhez (0-9) és \w-t szókarakterhez (betűk, számjegyek, aláhúzás). A negációk a \D és \W.
- Mire valók a ^ és a $ ?
- A ^ a mintát a szöveg vagy sor elejéhez, a $ a végéhez rögzíti. Együtt a ^minta$ az egész szöveg egyezését kényszeríti.