{"id":1792,"date":"2021-05-04T12:16:18","date_gmt":"2021-05-04T12:16:18","guid":{"rendered":"https:\/\/dijitalturk.com\/veysel\/?p=1792"},"modified":"2021-05-04T12:16:18","modified_gmt":"2021-05-04T12:16:18","slug":"regex-regular-expressions-komutlari-ve-kullanim-alanlari","status":"publish","type":"post","link":"https:\/\/dijitalturk.com\/veysel\/regex-regular-expressions-komutlari-ve-kullanim-alanlari\/","title":{"rendered":"Regex (Regular Expressions) komutlar\u0131 ve kullan\u0131m alanlar\u0131"},"content":{"rendered":"<p>Regex (Regular Expressions) komutlar\u0131 ve kullan\u0131m alanlar\u0131 hakk\u0131nda <strong>G\u00f6khan Kandemir<\/strong>&#8216;in \u00e7ok g\u00fczel bir anlat\u0131m\u0131n\u0131 g\u00f6rd\u00fcm ve sizlerle payla\u015fmak istedim. Ayr\u0131ca <a href=\"https:\/\/www.youtube.com\/channel\/UCYT5QTr38bwp85Pka8YSVIg\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">KablosuzKedi<\/a> YouTube kanal\u0131nda pek \u00e7ok konu ba\u015fl\u0131\u011f\u0131nda olduk\u00e7a doyurucu dersler ve anlat\u0131mlar bulabilirsiniz.<\/p>\n<p>Yaz\u0131l\u0131mla ilgilenen herkes illa ki bir noktada Regex &#8216;e ihtiya\u00e7 duymu\u015ftur. En az\u0131ndan ihtiya\u00e7 halinde elinizin alt\u0131nda bir k\u00fct\u00fcphane olmas\u0131 a\u00e7\u0131s\u0131ndan olduk\u00e7a faydal\u0131 bilgiler i\u00e7in tekrar te\u015fekk\u00fcrler.<\/p>\n<p><!--more--><\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<blockquote>\n<h1>Regular Expressions | Regex | D\u00fczenli \u0130fadeler<\/h1>\n<p>Eveeett, geldik malum konuya. Regex bize her\u015feyden \u00f6nce bir karakter se\u00e7im izni verir. Bu karakter veya karakter grubu tamamen sizin bak\u0131\u015f a\u00e7\u0131n\u0131za g\u00f6re de\u011fi\u015fir.<\/p>\n<h2>Flags<\/h2>\n<pre><code>\/g match All\r\n\/m multiline\r\n\/i case sensitive\r\n\/u unicode\r\n<\/code><\/pre>\n<h2>Nicelikler \/ Notasyonlar<\/h2>\n<p>###\u00a0+ (one or more) Bir tane veya \u015farta uyan birden fazla karakteri tek bir ifade olarak se\u00e7er.<\/p>\n<pre><code>Aloooo burada ne oluyor acaba?\r\n<\/code><\/pre>\n<p>gibi bir c\u00fcmlede<\/p>\n<pre><code>o+\r\n<\/code><\/pre>\n<p>yaparsak bize<\/p>\n<p>Al<strong>oooo<\/strong>\u00a0burada ne\u00a0<strong>o<\/strong>luyor acaba?<\/p>\n<p>ifadelerini d\u00f6necektir.<\/p>\n<h3>? Opsiyonel karakter<\/h3>\n<p>Opsiyonel olan karakterleri i\u015faretlememiz i\u00e7in kullan\u0131l\u0131r<\/p>\n<pre><code>Aloooo burada ne oluyor acaba?\r\n<\/code><\/pre>\n<p>gibi bir c\u00fcmlede<\/p>\n<pre><code>o+r?\r\n<\/code><\/pre>\n<p>yaparsak bize<\/p>\n<p>Al<strong>oooo<\/strong>\u00a0burada ne\u00a0<strong>o<\/strong>luy<strong>or<\/strong>\u00a0acaba?<\/p>\n<p>ifadelerini d\u00f6necektir. Burada\u00a0<strong>o+<\/strong>\u00a0dedi\u011fimiz i\u00e7in\u00a0<strong>oooo<\/strong>\u00a0olarak bize e\u015fle\u015fmenin tamam\u0131n\u0131 verdi.<\/p>\n<h3>* (zero or more) | ? ve + Birle\u015fimi<\/h3>\n<p><strong>+<\/strong>\u00a0ve\u00a0<strong>?<\/strong>\u00a0birle\u015fimidir. Opsiyonel olarak m\u00fcmk\u00fcn olan e\u015flesmeyi yine birle\u015fim olarak alir.<\/p>\n<pre><code>Aloooo burada ne oluyor acaba?\r\n<\/code><\/pre>\n<p>gibi bir c\u00fcmlede<\/p>\n<pre><code>o+r*\r\n<\/code><\/pre>\n<p>yaparsak bize<\/p>\n<p>Al<strong>oooo<\/strong>\u00a0burada ne\u00a0<strong>o<\/strong>luy<strong>or<\/strong>\u00a0acaba?<\/p>\n<p>ifadelerini d\u00f6necektir. \u00c7\u00fcnk\u00fc burada\u00a0<strong>*<\/strong>\u00a0karakterinin \u00f6zelli\u011finden dolay\u0131\u00a0<strong>r<\/strong>\u00a0opsiyonel olarak konumland\u0131r\u0131l\u0131r. E\u011fer varsa da\u00a0<strong>o<\/strong>\u00a0ve\u00a0<strong>r<\/strong>\u00a0birle\u015fimi olarak ele alacakt\u0131r.<\/p>\n<p>###\u00a0. (nokta) Notasyonu \u00f6ncesindeki ya da sonrasindaki yeni sat\u0131r hari\u00e7 herhangi bir karakteri temsil eder.<\/p>\n<pre><code>Aloooo burada ne oluyor acaba? Yeni video geldi.\r\nBence g\u00fczel bir video olmu\u015f\r\n<\/code><\/pre>\n<pre><code>d..\r\n<\/code><\/pre>\n<p>yaparsak bize<\/p>\n<p>Aloooo bura<strong>da<\/strong>\u00a0ne oluyor acaba? Yeni vi<strong>deo<\/strong>\u00a0gel<strong>di.<\/strong>\u00a0Bence g\u00fczel bir vi<strong>deo<\/strong>\u00a0olmu\u015f<\/p>\n<p>ifadesini geri d\u00f6necektir. E\u011fer buna bir tane daha\u00a0<strong>*(.) nokta<\/strong>\u00a0koyarsak<\/p>\n<pre><code>d...\r\n<\/code><\/pre>\n<p>\u015feklinde bu sefer se\u00e7im<\/p>\n<p>Aloooo bura<strong>da n<\/strong>e oluyor acaba? Yeni vi<strong>deo<\/strong>\u00a0gel<strong>di.<\/strong>\u00a0Bence g\u00fczel bir vi<strong>deo<\/strong>\u00a0olmu\u015f<\/p>\n<p>ifadesini geri d\u00f6necektir.<\/p>\n<h5>Fakat Nokta karakterini aramak istersek bu durumda;<\/h5>\n<p><strong>\\.<\/strong>\u00a0ile escape yaparak nokta karakterini arayabiliriz.<\/p>\n<h3>\\w<\/h3>\n<p>Bo\u015fluk olmayan t\u00fcm karakterleri teker teker se\u00e7er.<\/p>\n<h3>\\W negatif versiyon (\\w)<\/h3>\n<p>\\w&#8217; nin tersidir. Sadece bo\u015fluklar\u0131 teker teker se\u00e7er.<\/p>\n<h3>\\s<\/h3>\n<p>Bo\u015fluklar\u0131 se\u00e7erl<\/p>\n<h3>\\S Negatif versiyon (\\s)<\/h3>\n<p>\\s&#8217; in tersidir. Bo\u015fluklar harici t\u00fcm karakterleri teker teker se\u00e7er.<\/p>\n<h3>\\d Say\u0131lar<\/h3>\n<p>Say\u0131lar\u0131 se\u00e7er<\/p>\n<h3>\\D Say\u0131 olmayanlar<\/h3>\n<p>Say\u0131 olmayan karakterleri se\u00e7er.<\/p>\n<h2>Aral\u0131k belirleme<\/h2>\n<p>###\u00a0{x,y}\u00a0<strong>x<\/strong>\u00a0karakterden olu\u015fan bir kelime grubu se\u00e7er.\u00a0<strong>y<\/strong>\u00a0belirtilmek zorunda de\u011fildir. e\u011fer belirtilmezse x ve daha fazlasi olarak yorumlan\u0131r<\/p>\n<pre><code>\\w{4,}\r\n<\/code><\/pre>\n<p>4 karakterden fazla olan kelimeleri sec.<\/p>\n<p>##\u00a0Karakter Gruplama [fc]at Ba\u015f\u0131 f\u00a0<strong>ya da<\/strong>\u00a0c ile ba\u015flayan\u00a0<strong>&#8220;at&#8221;<\/strong>\u00a0ile biten kelimeler. Ayn\u0131 zamanda karakter gruplamay\u0131 bir aral\u0131k belirleme i\u00e7in de kullanabiliyoruz. Mesela\u00a0<strong>a<\/strong>\u00a0ile\u00a0<strong>z<\/strong>\u00a0aras\u0131ndaki t\u00fcm karakterler gibi.<\/p>\n<pre><code>fat cat hat tat nat Fat Cat 4at 5at\r\n<\/code><\/pre>\n<pre><code>[a-tA-T0-5]at\r\n<\/code><\/pre>\n<h3>Aral\u0131k Belirleme<\/h3>\n<pre><code>[a-z] [A-Z] [a-zA-Z] [0-9] [a-f]\r\n<\/code><\/pre>\n<p>gibi..<\/p>\n<pre><code>[a-zA-Z]at\r\n<\/code><\/pre>\n<h2>Gruplama \u0130\u015flemi (&#8230;)<\/h2>\n<p>Sadece 1 karakter degil birden fazla karakteri grup \u015feklinde almayi saglar (t|T)he ba\u015f\u0131ndaki karakter t ya da T olabilir sonu he ile biter..<\/p>\n<pre><code>The fat cat ran down the street.\r\n<\/code><\/pre>\n<pre><code>(t|e|r){2,3}\\.\r\n<\/code><\/pre>\n<p>i\u00e7erisinde t veya e veya r ge\u00e7en ve sonunda &#8220;.&#8221; ile biren en az 2 en \u00e7ok 3 karakterlik kelime gruplarini se\u00e7.<\/p>\n<p>Bu bize\u00a0<strong>eet.<\/strong>\u00a0ifadesini verecektir.<\/p>\n<pre><code>rerere rarara bir \u015feyler \u015fampiyon\r\n<\/code><\/pre>\n<p>buradan re{2,3} \u00fczerinden ilerleyece\u011fiz.<\/p>\n<pre><code>(re|ra){2,3}\r\n<\/code><\/pre>\n<p>i\u00e7erisinde en az 2 en cok 3 &#8220;re&#8221; olan kelime gruplarini sec<\/p>\n<pre><code>rere gibi ya da rerere\r\n<\/code><\/pre>\n<p>###\u00a0^ Sat\u0131r ba\u015f\u0131ndaki karakteri belirleme<\/p>\n<pre><code>Sokakta yaln\u0131z y\u00fcr\u00fcyorum.\r\nsokak bunun fark\u0131nda bile de\u011fil.\r\n<\/code><\/pre>\n<pre><code>^[Ss]okak\r\n<\/code><\/pre>\n<p>sat\u0131r ba\u015f\u0131 T veya t ile ba\u015flayan he ile biten karakter gruplar\u0131n\u0131 se\u00e7!<\/p>\n<p>###\u00a0$ Sat\u0131r sonundaki karakteri belirleme<\/p>\n<pre><code>\\.$\r\n<\/code><\/pre>\n<p>sonu nokta ile biten ifadeler.<\/p>\n<p>##\u00a0Lookahead<\/p>\n<p>Belirledi\u011fimiz karakter ya da karakter gruplar\u0131yla\u00a0<strong>devam eden<\/strong>\u00a0yada\u00a0<strong>devam etmeyen<\/strong>\u00a0ifadeleri se\u00e7memizi sa\u011flar<\/p>\n<pre><code>ifade(lookahead)\r\n<\/code><\/pre>\n<p>\u015feklinde d\u00fc\u015f\u00fcn\u00fclebilir. 2 farkl\u0131 y\u00f6ntemi vard\u0131r.<\/p>\n<p>###\u00a0Pozitif Lookahead |\u00a0Se\u00e7 &#8211; ?=<\/p>\n<p>Negatif Lookahed&#8217;in tam tersidir. Belirledi\u011fimiz karakter ile devam\u00a0<strong>eden<\/strong>\u00a0ifadeleri se\u00e7er. Mesela q ile ba\u015flay\u0131p u ile devam\u00a0<strong>etmeyen<\/strong>\u00a0bir ifadeyi se\u00e7mek istersek<\/p>\n<pre><code>quantity and qrcode is really useful\r\n<\/code><\/pre>\n<pre><code>q(?=u)[a-zA-Z0-0]+\r\n<\/code><\/pre>\n<p>\u015feklinde bir ifade yaz\u0131labilir. Buran\u0131n a\u00e7\u0131klmaas\u0131 ise\u00a0<strong>q<\/strong>\u00a0ile ba\u015flay\u0131p\u00a0<strong>u<\/strong>\u00a0ile devam eden kelime grubunu se\u00e7 demektir.<\/p>\n<p>Yine ayn\u0131 metinden yola \u00e7\u0131karak\u00a0<strong>u<\/strong>\u00a0ile devam eden karakterleri\u00a0<strong>se\u00e7<\/strong>\u00a0demek istersek<\/p>\n<pre><code>.(?=u)\r\n<\/code><\/pre>\n<p>bu bize\u00a0<strong>q<\/strong>\u00a0ve\u00a0<strong>bo\u015fluk<\/strong>\u00a0ve\u00a0<strong>f<\/strong>\u00a0karakterlerini se\u00e7ecektir.<\/p>\n<h5>Farkl\u0131 bir \u00f6rnek<\/h5>\n<pre><code>The fat cat ran down the street. rere\r\n<\/code><\/pre>\n<p>ifadesinden\u00a0<strong>at<\/strong>\u00a0ile\u00a0<strong>devam eden<\/strong>\u00a0karakterleri se\u00e7 demek istersen<\/p>\n<pre><code>.(?=at)\r\n<\/code><\/pre>\n<p>bu ifade bize\u00a0<strong>f<\/strong>\u00a0ve\u00a0<strong>c<\/strong>\u00a0karakterlerini verir. \u00c7\u00fcnk\u00fc c\u00fcmle i\u00e7erisinde\u00a0<strong>at<\/strong>\u00a0ile devam eden sadece\u00a0<strong>fat<\/strong>\u00a0ve\u00a0<strong>cat<\/strong>\u00a0vard\u0131r<\/p>\n<p>burada f ve c yi al\u0131r.<\/p>\n<h3>Negatif Lookahead |\u00a0Se\u00e7me &#8211; ?!<\/h3>\n<p>Belirledi\u011fimiz karakter ile devam etmeyen ifadeleri se\u00e7er. Mesela q ile ba\u015flay\u0131p u ile devam etmeyen bir ifadeyi se\u00e7mek istersek<\/p>\n<pre><code>quantity and qrcode is really useful\r\n<\/code><\/pre>\n<pre><code>q(?!u)[a-zA-Z0-9]+\r\n<\/code><\/pre>\n<p>burada q ile ba\u015flay\u0131p u ile\u00a0<strong>devam etmeyen<\/strong>\u00a0kelime grubunu se\u00e7er. [a-zA-Z0-9] ile herhangi bir karakteri gidebildi\u011fi karar se\u00e7mesini sagladik bu bize\u00a0<strong>qrcode<\/strong>\u00a0kelimesini geri d\u00f6nd\u00fcrecektir.<\/p>\n<pre><code>q(?!r)[a-zA-Z0-9]+\r\n<\/code><\/pre>\n<p>E\u011fer bu ifadeyi\u00a0<strong>u<\/strong>\u00a0yerine\u00a0<strong>r<\/strong>\u00a0ile de\u011fi\u015ftirirsek yani q ile ba\u015flay\u0131p r ile devam\u00a0<strong>etmeyen<\/strong>\u00a0kelime grubunu se\u00e7 dersek bu durumda\u00a0<strong>quantity<\/strong>\u00a0se\u00e7ilecektir.<\/p>\n<p>Yine ayn\u0131 metinden yola \u00e7\u0131karak\u00a0<strong>u<\/strong>\u00a0ile devam eden karakterleri\u00a0<strong>se\u00e7me<\/strong>\u00a0demek istersek<\/p>\n<pre><code>.(?!u)\r\n<\/code><\/pre>\n<p>bu bize\u00a0<strong>q<\/strong>\u00a0ve\u00a0<strong>bo\u015fluk<\/strong>\u00a0ve\u00a0<strong>f<\/strong>\u00a0hari\u00e7 di\u011fer t\u00fcm karakterleri se\u00e7ecektir.<\/p>\n<h5>Farkl\u0131 bir \u00f6rnek<\/h5>\n<pre><code>The fat cat ran down the street\r\n<\/code><\/pre>\n<p>kelimesinden at ile\u00a0<strong>devam etmeyen<\/strong>\u00a0t\u00fcm karakterleri se\u00e7 demek istersen<\/p>\n<pre><code>.(?!at)\r\n<\/code><\/pre>\n<p>burada\u00a0<strong>f<\/strong>\u00a0ve\u00a0<strong>c<\/strong>\u00a0hari\u00e7 hepsini\u00a0<strong>teker teker se\u00e7er<\/strong>\u00a0\u00e7\u00fcnk\u00fc se\u00e7ici olarak (.) nokta kullan\u0131lm\u0131\u015ft\u0131r.<\/p>\n<h2>Look Behind<\/h2>\n<p>\u00d6ncesinde belirledi\u011fimiz karakter ya da karakter gruplar\u0131yla\u00a0<strong>devam eden<\/strong>\u00a0yada\u00a0<strong>devam etmeyen<\/strong>\u00a0ifadeleri se\u00e7memizi sa\u011flar<\/p>\n<pre><code>(lookabehind)ifade\r\n<\/code><\/pre>\n<p>###\u00a0Pozitif Look Behind | Se\u00e7 &#8211; ?&lt;=<\/p>\n<p>Se\u00e7ece\u011fimiz ifadelerin\u00a0<strong>\u00f6ncesindeki<\/strong>\u00a0karakter ve karakter grubunun\u00a0<strong>olup olmamas\u0131n\u0131<\/strong>\u00a0kontrol eder. B\u00f6ylece \u00f6ncesinde\u00a0<strong>\u015fu varsa bunu se\u00e7<\/strong>\u00a0gibi bir se\u00e7im yapma durumuna imkan verir.<\/p>\n<pre><code>quantity and qrcode is really unuseful but this is an unethical\r\n<\/code><\/pre>\n<p>b\u00f6yle bir c\u00fcmlede\u00a0<strong>un<\/strong>\u00a0ile ba\u015flayan karakterleri se\u00e7elim.<\/p>\n<pre><code>(?&lt;=un).\r\n<\/code><\/pre>\n<p>quantity and qrcode is really un<strong>u<\/strong>seful but this is an un<strong>e<\/strong>thical<\/p>\n<p>karakterlerini verecektir. \u00c7\u00fcnk\u00fc \u00f6ncesinde\u00a0<strong>un<\/strong>\u00a0karakterleri bulunmaktad\u0131r.<\/p>\n<h5>Farkl\u0131 bir \u00f6rnek<\/h5>\n<pre><code>quantity and qrcode is really unuseful but this is an unethical. The man was born in early age. Also the man is really old\r\n<\/code><\/pre>\n<p>c\u00fcmlesinde almak istedi\u011fimiz kelimeler\u00a0<strong>punisher<\/strong>\u00a0ve\u00a0<strong>man<\/strong>\u00a0kelimeleri olsayd\u0131. Bunun \u00f6ncesinde The var m\u0131 yok mu diye kontrol edebilirdik. Di\u011fer bir bak\u0131\u015f a\u00e7\u0131s\u0131 ise The veya the ile ba\u015flayan kelimeleri bana nas\u0131l getirebilirdik? olabilir. Bunun i\u00e7in<\/p>\n<pre><code>(?&lt;=[tT]he )[a-zA-Z]+\r\n<\/code><\/pre>\n<p>ifadesi bizim i\u00e7in yeterli olacakt\u0131r. \u00c7\u00fcnk\u00fc The ya da the bizim se\u00e7mek istedi\u011fimiz iki farkl\u0131 kelime oldu\u011fu i\u00e7in burada T veya t opsiyonel olmal\u0131d\u0131r. Bu ifade bize \u015funu\u00a0<strong>punisher<\/strong>\u00a0ve\u00a0<strong>man<\/strong>\u00a0kelimelerini verecektir.<\/p>\n<h3>Negatif Look Behind | Se\u00e7me &#8211; &lt;?!<\/h3>\n<p>Pozitif look behind&#8217;\u0131n tam tersidir. Pozitif look behind\u00a0<strong>se\u00e7im yaparken<\/strong>, negatif i\u00e7e \u00f6ncesindeki karakter veya karakter grubunun olmas\u0131 durumunda devam eden ifadeyi\u00a0<strong>se\u00e7mez<\/strong>.<\/p>\n<pre><code>quantity and qrcode is really unuseful but this is an unethical\r\n<\/code><\/pre>\n<p>b\u00f6yle bir c\u00fcmlede\u00a0<strong>un<\/strong>\u00a0ile ba\u015flayan karakterleri\u00a0<strong>se\u00e7meyelim<\/strong>.<\/p>\n<pre><code>(?&lt;!un).\r\n<\/code><\/pre>\n<p><strong>quantity and qrcode is really un<\/strong>u<strong>seful but this is an un<\/strong>e<strong>thical<\/strong><\/p>\n<p>karakterleri haricindeki t\u00fcm karakterleri verecektir. \u00c7\u00fcnk\u00fc \u00f6ncesinde\u00a0<strong>un<\/strong>\u00a0karakterleri bulunmaktad\u0131r.<\/p>\n<h5>Farkl\u0131 bir \u00f6rnek<\/h5>\n<pre><code>quantity and qrcode is really unuseful but this is an unethical. The man was born in early age. Also the man is really old\r\n<\/code><\/pre>\n<p>c\u00fcmlesinde\u00a0<strong>\u00f6ncesinde<\/strong>\u00a0<strong>The<\/strong>\u00a0veya\u00a0<strong>the<\/strong>\u00a0olmayan t\u00fcm karakterleri se\u00e7 demek istersek<\/p>\n<pre><code>(?&lt;![Tt]he ).\r\n<\/code><\/pre>\n<p>ifadesi bizim i\u00e7in yeterli olacakt\u0131r. \u00c7\u00fcnk\u00fc The ya da the bizim se\u00e7mek istedi\u011fimiz iki farkl\u0131 kelime oldu\u011fu i\u00e7in burada T veya t opsiyonel olmal\u0131d\u0131r. Bu ifade bize;<\/p>\n<p><strong>quantity and qrcode is really unuseful but this is an unethical. The<\/strong>\u00a0p<strong>unisher was born in early age. Also the<\/strong>\u00a0m<strong>an is really old<\/strong><\/p>\n<p>ifadesini verir. \u00c7\u00fcnk\u00fc The veya the ile devam eden karakterler\u00a0<strong>p<\/strong>\u00a0ve\u00a0<strong>m<\/strong>\u00a0karakterleri. Bu karakterler haricindekilerin tamam\u0131n\u0131 se\u00e7ecektir.<\/p>\n<h2>\u00d6rnekler<\/h2>\n<p>###\u00a0Telefon Numaras\u0131 Se\u00e7mek<\/p>\n<pre><code>1234567890\r\n123-456-7890\r\n123 456 7890\r\n(123) 456-7890\r\n+1 123 456 7890\r\n<\/code><\/pre>\n<pre><code>\\d{3}[ -]?\\d{3}[ -]?\\d{4}\r\n<\/code><\/pre>\n<pre><code>(?&lt;areacode&gt;\\d{3})[ -]?(?&lt;inital&gt;\\d{3})[ -]?(?&lt;deneme&gt;\\d{4})\r\n<\/code><\/pre>\n<pre><code>\\(?(?&lt;areacode&gt;\\d{3})\\)?[\\) -]?(?&lt;inital&gt;\\d{3})[ -]?(?&lt;deneme&gt;\\d{4})\r\n<\/code><\/pre>\n<pre><code>(\\+\\d{1}[ -])?\\(?(?&lt;areacode&gt;\\d{3})\\)?[ -]?(?&lt;inital&gt;\\d{3})[ -]?(?&lt;deneme&gt;\\d{4})\r\n<\/code><\/pre>\n<pre><code>(?:(\\+\\d{1})[ -])?\\(?(?&lt;areacode&gt;\\d{3})\\)?[ -]?(?&lt;inital&gt;\\d{3})[ -]?(?&lt;deneme&gt;\\d{4})\r\n<\/code><\/pre>\n<pre><code>(?:(\\+\\d{1})[ -])?\\(?(?&lt;areacode&gt;\\d{3})\\)?[ -]?(?&lt;inital&gt;\\d{3})[ -]?(?&lt;deneme&gt;\\d{4})\r\n<\/code><\/pre>\n<pre><code>(?&lt;area&gt;(\\+\\d{1,}))[ -]?\\(?(?&lt;operator&gt;\\d{3})\\)?[ -]?(?&lt;main&gt;\\d{3})[ -]?(?&lt;number&gt;\\d{4})\r\n<\/code><\/pre>\n<pre><code>((?&lt;area&gt;\\+\\d{1,2})[ -])?\\(?(?&lt;operator&gt;\\d{3})\\)?[ -]?(?&lt;main&gt;\\d{3})[ -]?(?&lt;number&gt;\\d{4})\r\n<\/code><\/pre>\n<p><strong>Video i\u00e7erisinde yap\u0131lan<\/strong><\/p>\n<pre><code>(?&lt;areaCode&gt;\\+\\d{2})?[ ]?\\(?(?&lt;operator&gt;\\d{3})\\)?[ -]?(?&lt;main&gt;\\d{3})[ -]?(?&lt;number&gt;\\d{4})\r\n<\/code><\/pre>\n<h3>Tarih Validasyonu<\/h3>\n<pre><code>14\/02\/2018\r\n14-02-2018\r\n14.02.2018\r\n14.02.18\r\n<\/code><\/pre>\n<pre><code>(?&lt;day&gt;([0-9]{2}))([\\\/\\-\\.])(?&lt;month&gt;([0-9]{2}))([\\\/\\-\\.])(?&lt;year&gt;([0-9]{2,4}))\r\n<\/code><\/pre>\n<p><strong>Video i\u00e7erisinde yap\u0131lan<\/strong><\/p>\n<pre><code>(?&lt;day&gt;\\d{2})[\\\/\\-\\.](?&lt;month&gt;\\d{2})[\\\/\\-\\.](?&lt;year&gt;\\d{2,4})\r\n<\/code><\/pre>\n<h5>\u00d6DEV<\/h5>\n<pre><code>2018\/02\/14\r\n2018-02-14\r\n2018.02.14\r\n18.02.14\r\n<\/code><\/pre>\n<h3>[url~title] i\u00e7erisinden bilgileri almak<\/h3>\n<pre><code>[https:\/\/www.videosinif.com~videosinif]\r\n[https:\/\/www.kablosuzkedi.com,kablosuzkedi]\r\n[https:\/\/www.youtube.com\/kablosuzkedi|kablosuzkedi youtube kanal\u0131]\r\n<\/code><\/pre>\n<p>\u0130lk olarak URL k\u0131sm\u0131n\u0131 alal\u0131m<\/p>\n<pre><code>(?&lt;=\\[)(.*)(?=~)\r\n<\/code><\/pre>\n<p>pozitif\u00a0<strong>look behind<\/strong>\u00a0ve pozitif\u00a0<strong>look ahead<\/strong><\/p>\n<pre><code>(?&lt;url&gt;((?&lt;=\\[)(.*)(?=~)))\r\n<\/code><\/pre>\n<p>URL&#8217;yi gruplayarak ay\u0131ral\u0131m<\/p>\n<pre><code>(?&lt;title&gt;(?&lt;=~)(.*)(?=\\]))\r\n<\/code><\/pre>\n<p>title bilgisini de gruplayarak alabiliriz.<\/p>\n<pre><code>(?&lt;url&gt;((?&lt;=\\[)(.*)(?=[~|\\,|\\|])))[~\\,\\|](?&lt;title&gt;(?&lt;=[~|\\,|\\|])(.*)(?=\\]))\r\n<\/code><\/pre>\n<pre><code>(?&lt;url&gt;(?&lt;=\\[)(.*)(?=[~,\\|]))[~|,|\\|](?&lt;title&gt;(?&lt;=[~|,|\\|])(.*)(?=\\]))?\r\n<\/code><\/pre>\n<p><strong>Video i\u00e7erisinde yap\u0131lan<\/strong><\/p>\n<pre><code>(?&lt;=\\[)(?&lt;url&gt;.*)(?=[~,\\|])[~,\\|](?&lt;=[~,\\|])(?&lt;title&gt;.*)(?=\\])\r\n<\/code><\/pre>\n<p>Bu iki ifadenin de ayni gruplarda toplanabilmesi i\u00e7in araya ~ ekleyerek t\u00fcm ifadeyi se\u00e7tiriyoruz.<\/p>\n<p>###\u00a0Key: value \u00c7iftini almak<\/p>\n<pre><code>Name: Gokhan\r\nLastName: Kandemir\r\nAddress: Adana\r\nAge: 33\r\nMarried: Yes\r\n<\/code><\/pre>\n<pre><code>(?&lt;fieldName&gt;^[a-zA-Z]+): (?&lt;value&gt;[a-zA-Z0-9]+)\r\n<\/code><\/pre>\n<p>###\u00a0Web Sayfas\u0131ndan linkleri almak<\/p>\n<pre><code>&lt;a(\\s+)href=\"(?&lt;url&gt;([^\"]*))\"\r\n<\/code><\/pre>\n<pre><code>&lt;img(\\s)+src='[^']*'\r\n<\/code><\/pre>\n<p>[^&#8217;] =&gt; &#8216; olmayan t\u00fcm karakterleri se\u00e7<\/p>\n<p>###\u00a0&lt;body&gt;&#8230;&lt;\/body&gt; i\u00e7erisindeki i\u00e7eri\u011fi almak.<\/p>\n<pre><code>&lt;body[^&gt;]*&gt;([\\w|\\W]*)&lt;\\\/body&gt;\r\n<\/code><\/pre>\n<p>###\u00a0Email Validasyonu<\/p>\n<pre><code>gokhan@gkandemir.com adresinden g\u00fczel bir email aldim. peki bu .com uzant\u0131l\u0131 email adreslerinden \u00e7ekti\u011fimiz nedir be karde\u015fim. onunla beraber delphixdfd@gmail.com diye ayri bir ergen zamanlarimda aldigim email adresi de mevcut :D\r\n<\/code><\/pre>\n<pre><code>([a-zA-Z0-9])+\\@([a-zA-Z0-9])+\\.[a-zA-Z]{2,}\r\n<\/code><\/pre>\n<p><strong>Video i\u00e7erisinde yapilan.<\/strong><\/p>\n<pre><code>\\w+@\\w+\\.[a-zA-Z]{2,}\r\n<\/code><\/pre>\n<p>###\u00a0URL Validasyonu<\/p>\n<pre><code>burada bir ton web sayfas\u0131 var. https:\/\/www.google.com bunlardan bir tanesi. Neden oldu\u011funu bilmiyorum ama http:\/\/www.test123.space de bunlardan bir tanesi. Olduk\u00e7a g\u00fczel bir web sayfas\u0131 daha var burada www.kablosuzkedi.com uzun zamandan beri g\u00fcncellenmemi\u015f fakat yine de bilgiler i\u015fe yarayabilir. Fakat video izlemek isterseniz youtube.com da buna uyan di\u011fer bir g\u00fczel web sayfas\u0131\r\n<\/code><\/pre>\n<pre><code>(https?:?\\\/\\\/)?(www)?\\.?[a-zA-Z0-9]+\\.[a-zA-Z]{2,}\r\n<\/code><\/pre>\n<p><strong>Video i\u00e7erisinde Yapt\u0131\u011f\u0131m\u0131z \u00f6rnek<\/strong><\/p>\n<pre><code>(https?:\\\/\\\/)?(www\\.)?([a-zA-Z0-9]+)(\\.[a-zA-Z]{2,})\r\n<\/code><\/pre>\n<h3>Hashtag Ay\u0131klamak<\/h3>\n<pre><code>Regex i\u00e7in video haz\u0131rl\u0131yorum. #Regex ile \u00e7\u00f6z\u00fcmlemek i\u00e7in Bana u\u011fra\u015ft\u0131\u011f\u0131n\u0131z merak etti\u011finiz metinleri yazabilir misiniz? Mesela #Web sayfas\u0131ndaki &lt;body&gt;&lt;\/body&gt; #tag 'leri aras\u0131ndaki bilgileri almak gibi. Bu #kolay tabi :) #Derd\u0131mianlatabilmi\u015fimdirumarim :) #360dayscleancode\r\n<\/code><\/pre>\n<pre><code>#[a-zA-Z0-9i\u015f\u00fc\u011f\u00e7\u00f6\u0131]+\r\n<\/code><\/pre>\n<h3>Youtube, Vimeo, \u0130zlesene Video URL Ay\u0131klama<\/h3>\n<pre><code>data-config-url=\"https:\/\/player.vimeo.com\/video\/488734703\/config?autopause=1&amp;amp;autoplay=1&amp;amp;byline=0&amp;amp;collections=1&amp;amp;context=Vimeo%5CController%5CClipController.main&amp;amp;default_to_hd=1&amp;amp;outro=nothing&amp;amp;portrait=0&amp;amp;share=1&amp;amp;title=0&amp;amp;watch_trailer=0&amp;amp;s=8be48fe12cfacadb79085e9c2acbd6568c1fb641_1609112069\" data-fallback-url=\"\/\/player.vimeo.com\/video\/488734703\/fallback?js\"\r\n\r\nZeroMQ nedir isimli video \u015fu an yay\u0131nda! https:\/\/www.youtube.com\/watch?v=YAYp7hbOu7o\r\n\r\nPentagram'\u0131n g\u00fczel bir \u015fark\u0131s\u0131 g\u00fczel bir \u015fark\u0131 gibi sanki ama eski tad\u0131n\u0131 vermiyor https:\/\/www.izlesene.com\/video\/pentagram-bu-duzen-yikilsin\/10523935\r\n<\/code><\/pre>\n<pre><code>(https:\\\/\\\/)(www\\.)?(?&lt;vimeo&gt;(player\\.vimeo\\.com\\\/video\\\/[0-9]+\\\/)?)(?&lt;youtube&gt;youtube\\.com\\\/watch\\?v=[a-zA-Z0-9]+)?(?&lt;izlesene&gt;(izlesene\\.com\\\/video\\\/[a-zA-Z0-9\\\/-]+))?\r\n<\/code><\/pre>\n<h2>JavaScipt ile Yapt\u0131\u011f\u0131m\u0131z Kodlar<\/h2>\n<h4>JavaScript ile E-mail Validasyonu<\/h4>\n<pre><code>const email_regex = \/\\w+@\\w+\\.[a-zA-Z]{2,}\/g;\r\nif (email_regex.test(\"gokhan@gkandemir.com\")) {\r\n    alert(\"Ba\u015far\u0131l\u0131\");\r\n} else {\r\n    alert(\"Ba\u015far\u0131s\u0131z\")\r\n}\r\n<\/code><\/pre>\n<h4>JavaScript ile Hashtag Listesini Almak<\/h4>\n<pre><code>const regex = \/#[a-zA-Z0-9\u015f\u0131\u011f\u00fc\u00e7\u00f6]+\/gm;\r\n\r\nconst str = `Regex i\u00e7in video haz\u0131rl\u0131yorum. #Regex ile \u00e7\u00f6z\u00fcmlemek i\u00e7in Bana u\u011fra\u015ft\u0131\u011f\u0131n\u0131z merak etti\u011finiz metinleri yazabilir misiniz? Mesela #Web sayfas\u0131ndaki &lt;body&gt;&lt;\/body&gt; #tag 'leri aras\u0131ndaki bilgileri almak gibi. Bu #kolay tabi :) #Derdimianlatabilmi\u015fimdirumar\u0131m :) #360dayscleancode`;\r\n\r\n\/\/ console.log(str.match(regex));\r\n\r\nstr.match(regex).forEach(h =&gt; console.log(h));\r\n<\/code><\/pre>\n<p>Son olarak isterseniz bu\u00a0<a href=\"https:\/\/cs.lmu.edu\/~ray\/notes\/regex\/\" rel=\"nofollow noopener\" target=\"_blank\">link \u00fczerinden<\/a>\u00a0Regex \u00f6rneklerini inceleyerek kendinizi test edebilirsiniz. Olduk\u00e7a faydal\u0131 oldu\u011funu s\u00f6yleyebilirim \ud83d\ude42<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>A\u015fa\u011f\u0131da video anlat\u0131m da mevcut.<\/p>\n<p>[su_youtube url=&#8221;https:\/\/www.youtube.com\/watch?v=bF_zEzFQZuA&amp;t=442s&#8221; title=&#8221;Regex&#8221;]<\/p>\n<p>Kaynak: <a href=\"https:\/\/www.kablosuzkedi.com\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">kablosuzkedi | G\u00f6khan Kandemir<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Regex (Regular Expressions) komutlar\u0131 ve kullan\u0131m alanlar\u0131 hakk\u0131nda G\u00f6khan Kandemir&#8216;in \u00e7ok g\u00fczel bir anlat\u0131m\u0131n\u0131 g\u00f6rd\u00fcm ve sizlerle payla\u015fmak istedim. Ayr\u0131ca [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":580,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[2,291],"tags":[293,398,38],"class_list":["post-1792","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-yazilim","category-javascript","tag-javascript","tag-regex","tag-video"],"uagb_featured_image_src":{"full":["https:\/\/dijitalturk.com\/veysel\/wp-content\/uploads\/2015\/03\/Html-tags-icon.png",256,256,false],"thumbnail":["https:\/\/dijitalturk.com\/veysel\/wp-content\/uploads\/2015\/03\/Html-tags-icon-150x150.png",150,150,true],"medium":["https:\/\/dijitalturk.com\/veysel\/wp-content\/uploads\/2015\/03\/Html-tags-icon-190x190.png",190,190,true],"medium_large":["https:\/\/dijitalturk.com\/veysel\/wp-content\/uploads\/2015\/03\/Html-tags-icon.png",256,256,false],"large":["https:\/\/dijitalturk.com\/veysel\/wp-content\/uploads\/2015\/03\/Html-tags-icon.png",256,256,false],"1536x1536":["https:\/\/dijitalturk.com\/veysel\/wp-content\/uploads\/2015\/03\/Html-tags-icon.png",256,256,false],"2048x2048":["https:\/\/dijitalturk.com\/veysel\/wp-content\/uploads\/2015\/03\/Html-tags-icon.png",256,256,false]},"uagb_author_info":{"display_name":"VeYSeL","author_link":"https:\/\/dijitalturk.com\/veysel\/author\/veysel\/"},"uagb_comment_info":0,"uagb_excerpt":"Regex (Regular Expressions) komutlar\u0131 ve kullan\u0131m alanlar\u0131 hakk\u0131nda G\u00f6khan Kandemir&#8216;in \u00e7ok g\u00fczel bir anlat\u0131m\u0131n\u0131 g\u00f6rd\u00fcm ve sizlerle payla\u015fmak istedim. Ayr\u0131ca [&hellip;]","_links":{"self":[{"href":"https:\/\/dijitalturk.com\/veysel\/wp-json\/wp\/v2\/posts\/1792","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dijitalturk.com\/veysel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dijitalturk.com\/veysel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dijitalturk.com\/veysel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dijitalturk.com\/veysel\/wp-json\/wp\/v2\/comments?post=1792"}],"version-history":[{"count":0,"href":"https:\/\/dijitalturk.com\/veysel\/wp-json\/wp\/v2\/posts\/1792\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dijitalturk.com\/veysel\/wp-json\/wp\/v2\/media\/580"}],"wp:attachment":[{"href":"https:\/\/dijitalturk.com\/veysel\/wp-json\/wp\/v2\/media?parent=1792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dijitalturk.com\/veysel\/wp-json\/wp\/v2\/categories?post=1792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dijitalturk.com\/veysel\/wp-json\/wp\/v2\/tags?post=1792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}