Cheat sheet sa regex basics
Ang regular expression (regex) ay isang pattern na tumutugma sa text. Ang bawat simbolo, tinatawag na token, ay binabago ang pag-uugali ng pattern. Ang cheat sheet sa ibaba ay naglista ng mga pinakagamit na token, may simpleang kahulugan at maliit na halimbawang pwedeng kopyahin at subukan.
| Token | Kahulugan | Halimbawa |
|---|---|---|
| . | 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 |
Tala
- Ang karamihan ng token ay nawawalan ng espesyal na kahulugan sa loob ng character set [ ]. Halimbawa, ang . sa loob ng [] ay tumutugma lang sa isang literal na tuldok.
- Ang backslash (\) ay ang escape character: ginagawa nitong literal na character ang isang special token at vice versa.
- Ang mga engine ay magkaiba: ang Python, JavaScript, PCRE at Golang ay nagbabahagi ng karamihan ng token, pero ang flags at look-around support ay nag-iiba.
Mga madalas itanong
- Ano ang tinutugma ng dot (.) ?
- Sa default, ang dot ay tumutugma sa kahit anong character maliban sa newline. Para sa literal na dot, i-escape ito bilang \.
- Ano ang pagkakaiba ng * at + ?
- Ang asterisk * ay tumutugma sa nakaraang token nang zero o mahigit pang beses, kaya ang 'ab*' ay tumutugma rin sa 'a'. Ang plus + ay nangangailangan ng kahit isa, tumutugma sa 'ab' pero hindi sa 'a' lang.
- Paano ako tumugma sa isang digit o word character?
- Gamitin ang \d para sa kahit anong digit (0-9) at \w para sa kahit anong word character (letra, digit, underscore). Ang negations ay \D at \W.
- Para saan ang ^ at $ ?
- Ang ^ ay nag-aankora ng match sa simula ng string o line; ang $ sa dulo. Magkasama, ang ^pattern$ ay nagpapawan na ang buong string ay tumugma.