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?

Regular expressions (Düzenli ifade) yazımları esnasında kullanılabilecek karakterler ve karakter setleri vardır. Bu karakterlerin her biri farklı bir kullanım amacına hizmet eder ve karakterlerin birlikte kullanımları ile bambaşka sonuçlar ortaya gelebilmektedir. 

Regular expressions yazımında kullanılmakta olan genel karakterler ve anlamları şu şekildedir;

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

Bu blogdaki popüler yayınlar

OCPP ve Open Source Şarj Protokolü (OCA) nedir?

SQL

OOP - Abstraction (Soyutlama)