Regex 101
/ ............ / ---> Kuralı sadece bir defa çalıştırır.
/ ............ /g ---> Kuralı her tekrar için çalıştırır.
-------------------------------------------------------
Bu bir regex denemeee Yazısıdır.
-------------------------------------------------------
/e/ ----> e
/e/g ----> e e e e e e e
/e+/ --->eee
/e+/g ---> e e e e eee
/regex/ ---> regex
Regex; regular expression açılımına sahip ve dilimizde düzenli ifade anlamına gelmekte olan, metinler içerisinde tekrar eden ya da benzersiz yapıları tespit etmeye yönelik kullanılan arama yapısıdır.
Regexp olarak da bilinmekte olan bu yapı genellikle yazılım ya da programlama süreçlerinde kullanılmaktadır. Buna ek olarak metin ayrıştırma süreçleri ile ilgilenen ve büyük veri kümeleri üzerinde çalışmakta olan profesyoneller tarafından da kullanılmaktadır.
RegeX Nasıl Çalışır?
Regex stringler (text) yapıları üzerinde çalışmaktadır. Stringleri soldan sağa biz düzlemde eşleştirerek, girilen formüle uygun eşleşmeyi bulmak mantığı ile süreci tamamlamaktadır. Bu çalışma yapısı ilk olarak aranılan stringi bulmak temelindedir. Ancak gibi durumlarda find-replace mantığı da çalışmaktadır. Bu da bulunan stringi başka bir string ile yer değiştirmektedir.
RegeX işlemlerinin başlatılması için ilk olarak özel karakter dizisi oluşturulmalıdır. Bu yapı aşağıda bahsedeceğimiz özel karakter düzenlemelerini içererek hedeflenecek olan stringi almaya yönelik kurgulanır. Bu sayede find ya da find-replace işlemleri tamamlanacaktır.
RegeX Neden Kullanılmalıdır?
Karakter | İşlevi |
. | Wildcard olarak da bilinmektedir. Her şey ile eşleşmektedir. |
^ | String sonu |
$ | String sonu |
* | Sıfır ya da çoklu tekrar |
+ | 1 ya da çoklu tekrar |
? | Sıfır ya da 1 tekrar |
{m} | İçerisinde yer alan karakterler için tam eşleşmeyi ifade eder |
{1,10} | İçerisinde yer alan karakterler için ilk ve ikinci ifade arasında bir eşleşmeyi ifade eder |
| | Veya anlamına gelmektedir. |
[x] | Karakter seti |
(x) | İçerisinde yer alan karakterleri gruplar |
\ | Escape karakter olarak bilinir. Tabloda yer alan özel karakterleri (örn. “.”) normal karaktere dönüştürmektedir. |
\w | Tüm harf ve rakamları içerisine alır. (Küçük harfler) |
\W | Tüm büyük harf ve rakamları ifade eder. |
\d | Tüm rakamları ifade eder |
\n | Satır işareti |
\s | Boşluk |
\S | Boşluk içermeyen |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | Regular Expression FUll Cheatsheet (For quick look) :) note: for downloading visit https://buggyprogrammer.com/regular-expression-cheatsheet/ ------x-------------------x----------------x------------x----------------x------------- # -------------- Anchors -------------- ^ → Start of string, or start of line in multiline pattern \A → Start of string $ → End of string, or end of line in multi-line pattern \Z → End of string \b → Word boundary \B → Not word boundary \< → Start of word \> → End of word # ---------- Character Classes -------- \c → Control character \s → White space \S → Not white space \d → Digit \D → Not digit \w → Word \W → Not word \x → Hexadecimal digit \O → Octal digit # --------- Quantifiers ----------------- * → 0 or more {3} → Exactly 3 + → 1 or more {3,} → 3 or more ? → 0 or 1 {3,5} → 3, 4 or 5 Add a ? to a quantifier to make it ungreedy. # ------- Special Characters ------------- \n → New line \r → Carriage return \t → Tab \v → Vertical tab \f → Form feed \xxx → Octal character xxx \xhh → Hex character hh # --------- Groups and Ranges ------------- . → Any character except new line (\n) (a|b) → a or b (...) → Group (?:...) → Passive (non-capturing) group [abc] → Range (a or b or c) [^abc] → Not (a or b or c) [a-q] → Lower case letter from a to q [A-Q] → Upper case letter from A to Q [0-7] → Digit from 0 to 7 \x → Group/subpattern number "x" Ranges are inclusive. # ----------- Assertions --------------- ?= → Lookahead assertion ?! → Negative lookahead ?<= → Lookbehind assertion ?!= or ?<! → Negative lookbehind ?> → Once-only Subexpression ?() → Condition [if then] ?()| → Condition [if then else] ?# → Comment # ------ Pattern Modifiers -------- g → Global match i* → Case-insensitive m* → Multiple lines s* → Treat string as single line x* → Allow comments and whitespace in pattern e* → Evaluate replacement U* → Ungreedy pattern * → PCRE modifier # ------ String Replacement ------ $n → nth non-passive group $2 → "xyz" in /^(abc(xyz))$/ $1 → "xyz" in /^(?:abc)(xyz)$/ $` → Before matched string $' → After matched string $+ → Last matched string $& → Entire matched string Some regex implementations use \ instead of $ # ---------- Escape Sequences ------------ \ Escape following character \Q Begin literal sequence \E End literal sequence "Escaping" is a way of treating characters which have a special meaning in regular expressions literally, rather than as special characters. # --------- Common Metacharacters --------- ^ [ . $ { * ( \ + ) | < > The escape character is usually \ |
Yorumlar