
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Venus Programlama</title>
	<atom:link href="http://programlama.venus.gen.tr/feed" rel="self" type="application/rss+xml" />
	<link>http://programlama.venus.gen.tr</link>
	<description>Programlama üzerine deneyimler, ipuçları ve hazır kodlar...</description>
	<lastBuildDate>Tue, 17 Apr 2012 15:54:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Düzenli İfadeler</title>
		<link>http://programlama.venus.gen.tr/php/regular-expression-regex-hakkinda.html</link>
		<comments>http://programlama.venus.gen.tr/php/regular-expression-regex-hakkinda.html#comments</comments>
		<pubDate>Tue, 17 Apr 2012 15:32:32 +0000</pubDate>
		<dc:creator>Venus</dc:creator>
				<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[düzenli ifadeler]]></category>
		<category><![CDATA[pattern]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[preg_match_all]]></category>
		<category><![CDATA[preg_replace]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expression]]></category>

		<guid isPermaLink="false">http://programlama.venus.gen.tr/?p=72</guid>
		<description><![CDATA[İngilizce: Regular Expression (RegEx) Bu konuyla ilgili Türkçe kaynak araştırdım ancak fazla bulamadım. Şu kaynaktan faydalanarak bilgilerimi pekiştirdim ve şimdi öğrendiklerimi sizlerle paylaşmak istiyorum. Çeviride &#8220;düzenli ifadeler&#8221; anlamına gelen bu kavram daha çok bir metin içerisinde kriterlerimize uyan kelime ve &#8230; <a href="http://programlama.venus.gen.tr/php/regular-expression-regex-hakkinda.html">Okumaya devam et <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>İngilizce: <u><i>Regular Expression (RegEx)</i></u></p>
<p>Bu konuyla ilgili Türkçe kaynak araştırdım ancak fazla bulamadım. <a href="http://cekirdek.uludag.org.tr/~meren/belgeler/regex/regex.html">Şu kaynaktan</a> faydalanarak bilgilerimi pekiştirdim ve şimdi öğrendiklerimi sizlerle paylaşmak istiyorum.</p>
<p>Çeviride &#8220;düzenli ifadeler&#8221; anlamına gelen bu kavram daha çok bir metin içerisinde kriterlerimize uyan kelime ve olayları saptamak, düzenlemek ve değiştirmek işine yarar. Birçok programlama dilinde geçerli olan bu ifadelere ingilizce &#8220;pattern&#8221; yani kalıp denmiştir.</p>
<p>Örnek bir kullanımdan bahsedeceksek PHP&#8217;de yazılan aşağıdaki kodu inceleyelim:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code10'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7210"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p72code10"><pre class="php" style="font-family:monospace;">   <span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Ali atta bak.&quot;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">echo</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'~atta~i'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'ata'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$degisken</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Kodu çalıştırdığımızda &#8220;atta&#8221; kelimesini &#8220;ata&#8221; kelimesine dönüştürerek bize verdiğini göreceğiz. preg_replace kullanımı <b>preg_replace( $kalıp, $değişecek, $değişken )</b> şeklindedir. Burada regex yani ifademiz &#8216;~atta~i&#8217; kelimesidir.</p>
<p>Bu kalıp ifadeler özel bir karakterle başlatılır ve aynısıyla bitirilir, sonuna da özellik değişkenleri yazılır. Örneğin yukarıdaki örnekte &#8220;i&#8221; tek satır arama yapacağımızı belirtir. &#8220;m&#8221; birden fazla satırda işlem yaparken, &#8220;s&#8221; ise nokta işaretlerine göre arama yapmamıza yardım eder. Bunlara kalıp ayarı (Pattern Modifiers) diyoruz.</p>
<p>Buraya kadar genel bilgiler verdik. Şimdi kalıplarda yer verdiğimiz sembolleri tanıyalım. Öncelikle aradığımız kelimeyi ~, #, \ gibi karakterlerin arasına yazarak direkt o kelimeyi bulabiliriz. Ayrıca | işareti kullanarak birden fazla olabilecek durum yazmamız mümkün:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code11'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7211"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p72code11"><pre class="php" style="font-family:monospace;">   <span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'abc'</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'~a(bc|b)~i'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Buldum!'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$degisken</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$degisken</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Yukarıdaki kod çalıştırıldığında değişkenimizin Buldum! olarak değiştiğini göreceğiz. &#8220;a(bc|b)&#8221; de iki olasılık var. Biri abc olmasıdır, diğeri ab olmasıdır. Her iki durumda da doğru olarak sonuç dönecektir. Ancak değişkenimiz &#8220;acd&#8221; olsaydı bu kez aynı kaldığını görecektik.</p>
<p>Her zaman aradığımız kelime bilinen bir şey olmayabilir, belli kalıplara göre de arama yapabiliriz. Bunun için bazı özel karakterler kullanırız. Bunlardan 3 tanesini hemen tanıyalım: * (yıldız), + (artı) ve ? (soru işareti).</p>
<p>(*) işareti herhangi bir şey anlamında olup sıfır karaktere de olur der ve sınırsız karaktere kadar gider. (+) ise yıldızdan farklı olarak en az 1 karakter olmasını şart koşar. (?) ise tek bir harf için joker karakter niyetine kullanılır.</p>
<p>Bu üç işaretten önce belli bir kural belirtilir. Kural belirtmek için [] (köşeli parantez) kullanılır. Örneğin [ABC] dersek büyük harflerle A, B ve C olabilir demektir. Diğer örneklere bakalım:</p>
<p>[abc] : a, b, c olabilir.<br />
[0-9] : 0 ile 9 arasındaki tüm sayılar olabilir.<br />
[1-3] : 1 ile 3 arasındaki tüm sayılar olabilir.<br />
[A-Z] : Büyük harfli A&#8217;dan Z&#8217;ye tüm harfler olabilir.<br />
[a-z] : Küçük harfli A&#8217;dan Z&#8217;ye tüm harfler olabilir.<br />
[A-Za-z0-9] : Bir harf ya da rakam olabilir.<br />
[-_/$. ] : -, _, /, $, . ve boşluk karakterleri olabilir.</p>
<p>İstersek kaç adet karakter olabileceğini de limitlememiz mümkün. Bunun için { ve } kullanılır. Arasında minimum ve en yüksek karakter sayısı yazılır.</p>
<p>[A-Za-z0-9 ]{1,4} : Bir, iki, üç veya 4 harfli tüm rakam, harf ve boşluk karakterler olabilir.<br />
[1-9]{3} : 100&#8242;den 999&#8242;a kadar tüm sayılar olabilir.</p>
<p>Şimdiye kadar öğrendiklerimizi iki örnekte görelim.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code12'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7212"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p72code12"><pre class="php" style="font-family:monospace;">	<span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Murat 1984 yılında Samsun'da doğdu.&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<a href="http://www.php.net/preg_match_all"><span style="color: #990000;">preg_match_all</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'/[0-9]*/i'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$degisken</span><span style="color: #339933;">,</span> <span style="color: #000088;">$esler</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<a href="http://www.php.net/print_r"><span style="color: #990000;">print_r</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$esler</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Yukarıdaki kod çalıştırıldığında 1984&#8242;ün seçili olduğunu görebiliriz. Ancak kurala uyan tek kelime 1984 değil, yaklaşık 32 uyan sonuç bulunur (geriye kalanlar boştur).</p>
<p>Ancak yukarıdaki örneği bir de artı (+) kullanarak çalıştırsaydık:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code13'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7213"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p72code13"><pre class="php" style="font-family:monospace;">	<span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Murat 1984 yılında Samsun'da doğdu.&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<a href="http://www.php.net/preg_match_all"><span style="color: #990000;">preg_match_all</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'/[0-9]+/i'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$degisken</span><span style="color: #339933;">,</span> <span style="color: #000088;">$esler</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<a href="http://www.php.net/print_r"><span style="color: #990000;">print_r</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$esler</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Bu kez TEK SONUÇ çıkacaktı, o da 1984 olurdu. Bu farkın sebebi * karakteri için herhangi bir karakter olmasına gerek yok ancak + simgesi kullanırsak en az 1 adet karakter gerekli.</p>
<p>Şimdi bir de soru işaretini kullanarak bir örnek yapalım.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code14'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7214"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p72code14"><pre class="php" style="font-family:monospace;">	<span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Murat 1984 yılında Samsun'da doğdu.&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'/Mur[A-Za-z]?t/i'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Mert'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$degisken</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$degisken</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Bize &#8220;Mert 1984 yılında Samsun&#8217;da doğdu.&#8221; şeklinde dönüş yapacaktır. [koşul]? ile belirttiğimiz yerde &#8220;a&#8221; karakteri koşulu karşılıyor ve cümle değişiyor. Ancak &#8220;a&#8221; karakteri orada olmasaydı yani &#8220;Murt&#8221; olsaydı da Mert olarak değişecekti. Çünkü soru işareti aynı zamanda <b>opsiyonel</b> anlamı katar. Yani olabilir de olmayabilir de.</p>
<p>Başka bir örneğe bakalım:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code15'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7215"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p72code15"><pre class="php" style="font-family:monospace;">	<span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Programlama demek &lt;u&gt;matematik&lt;/u&gt; demek değildir! &lt;b&gt;Mantık&lt;/b&gt; demektir!&quot;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'~&lt;[A-Za-z][A-Za-z0-9]*&gt;~i'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$degisken</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$degisken</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Çalıştırdığımızda aslında alt yazılı ve kalın olmasını sağlayan U ve B tagları varken silindiklerini göreceğiz.</p>
<p>Burada kural şudur: &#8220;<[A-Za-z][A-Za-z0-9]*>&#8220;, < ile başlayan, A-Za-z ile devam eden (tek karakter) ve sonrasında A-Za-z0-9 ile devam eden (yıldız süreklilik anlamı katar) ve en sonunda > ile biten bir ifade aranmaktadır. Eğer kuralımız &#8220;<[A-Za-z0-9]*>&#8221; olsaydı bu kez HTML tagları 0-9 ile de başlayabilecekti. Ancak ilk köşeli parantezde ilk harfteki zorunluluğu [A-Za-z] olarak belirtmiş olduk.</p>
<p>Şimdi başka bir örnekte bir sayı dizisindeki 1000 &#8211; 9999 arasındaki sayıları preg_match_all ile bulmasını sağlayalım.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code16'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7216"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p72code16"><pre class="php" style="font-family:monospace;">	<span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'1000 752 1699 10000 25 5860 880800 9800'</span><span style="color: #339933;">;</span>
&nbsp;
	<a href="http://www.php.net/preg_match_all"><span style="color: #990000;">preg_match_all</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'~\b[1-9][0-9]{3}\b~i'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$degisken</span><span style="color: #339933;">,</span> <span style="color: #000088;">$esler</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<a href="http://www.php.net/print_r"><span style="color: #990000;">print_r</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$esler</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Kod çalıştırıldığında şu sonucu gösterir: &#8220;Array ( [0] => Array ( [0] => 1000 [1] => 1699 [2] => 5860 [3] => 9800 ) ) &#8221; Görüldüğü gibi tam istediğimiz aralıktaki sayıları kendisi buldu. Bunun için kullandığımız &#8220;\b[1-9][0-9]{3}\b&#8221; kuralında \b bir kelime sınırı anlamına gelmektedir. Örneğin &#8220;Ayşe topu at&#8221; kelimesinde Ayşe&#8217;deki E harfinden sonra \b gelmektedir. Dolayısıyla verdiğimiz dizede boşlukları bölerek arama yapmasını sağlamış olduk. [1-9] ilk sayısı 1 ile 9 arasında olacağını, [0-9]{3} ise sonraki 3 karakterin sayısal bir değeri olacağını belirtir.</p>
<p>Dikkat edildiyse yukarıda yıldız, artı ya da soru işareti kullanmadık. Bunun sebebi kalıpta olması gerekenleri tamamen yazmış olmamız. [1-9] bir karakter, [0-9]{3} üç karakter ediyor. Toplamda 4 karakterli bir şey aradığımız kesin. Karakter sayısı bilindiğine göre +, * gibi sürekli değişkenler ile olabilir ifadesi olan ? karakterlerine gerek yoktur.</p>
<p>Özellikle PHP BOT yazanların sıklıkla yaptığı bir yanlışa da deyinelim. Örneğin em tagları arasındaki kelimeleri almak istiyoruz. Ancak bu durumu sağlayan iki örnek varsa aç gözlü davranıp hepsini birleştirip alır. Örneğin;</p>
<p>&#8220;Bu &lt;EM&gt;birinci&lt;/EM&gt; test&#8221; kelimesinde &lt;herhangibirşey&gt; yapısındaki tüm uyan ifadeleri bulacağız. Bunun için iki farklı kullanımı aynı kodda kullanalım:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code17'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7217"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="p72code17"><pre class="php" style="font-family:monospace;">	<span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Bu &lt;EM&gt;birinci&lt;/EM&gt; test'</span><span style="color: #339933;">;</span>
&nbsp;
	<a href="http://www.php.net/preg_match_all"><span style="color: #990000;">preg_match_all</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'~&lt;.+&gt;~i'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$degisken</span><span style="color: #339933;">,</span> <span style="color: #000088;">$bulunan1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<a href="http://www.php.net/preg_match_all"><span style="color: #990000;">preg_match_all</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'~&lt;.+?&gt;~i'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$degisken</span><span style="color: #339933;">,</span> <span style="color: #000088;">$bulunan2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<a href="http://www.php.net/print_r"><span style="color: #990000;">print_r</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$bulunan1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<a href="http://www.php.net/print_r"><span style="color: #990000;">print_r</span></a><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$bulunan2</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Çıkan sonuçlara bakacak olursak &#8220;~<.+>~i&#8221; kalıbı kullandığımız 1. komut &#8220;&lt;EM&gt;birinci&lt;/EM&gt;&#8221; şeklinde tek sonuç döndürdü. Ancak soru işareti ekleyerek oluşturduğumuz 2. kalıp &#8220;~<.+?>~i&#8221; ise soru işareti olasılık anlamı kattığı için fazla açgözlü davranmadı. İki sonuç döndürdü, bunlar da istediğimiz sonuçlar: &#8220;&lt;EM&gt;&#8221; ve &#8220;&lt;/EM&gt;&#8221; sonuçları.</p>
<p>Son olarak bir de &#8220;Ya olmamasını istiyorsak?&#8221; diyelim ve şapkalı karakterimizi tanıtalım. Bu karakter olabilecekler listesinin en önüne konulduğunda olmamasını istediklerimiz anlamı katar. Örneğin [0-9] nasıl bir sayı olmasını istediğimizi ifade ediyorsa [^0-9] sayı olmaması anlamına gelir.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p72code18'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7218"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p72code18"><pre class="php" style="font-family:monospace;">	<span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Fetih 1453 filmine gittin mi?'</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$degisken</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/preg_replace"><span style="color: #990000;">preg_replace</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'#[^A-Za-z-_ ]+\b#i'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'(sayı)'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$degisken</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$degisken</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Yukarıda şapkayı koyarak anlattığımız köşeli parantez içindeki ifade bir harf, &#8211; (tire), _ (alt çizgi) ve boşluk olmayan ifadeleri bul anlamına geliyor. Her kelime içinde bunu araması için +&#8217;dan sonra bir de \b koyduk. Çalıştırdığımızda 1453 olan kısmın (sayı) şeklinde olduğunu saptamış olacağız.</p>
<p>Aslında anlatacak çok şey var ancak giriş için temel bilgiler bunlar. Fırsat bulduğumda (?>(?:>)) tarzı özel ifadelerden faydalanmayı anlatacağım.</p>
<p>Hepinize iyi kodlamalar!</p>
]]></content:encoded>
			<wfw:commentRss>http://programlama.venus.gen.tr/php/regular-expression-regex-hakkinda.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# Kullanarak OBEB OKEK Hesaplamak</title>
		<link>http://programlama.venus.gen.tr/c-sharp/c-kullanarak-obeb-okek-hesaplamak.html</link>
		<comments>http://programlama.venus.gen.tr/c-sharp/c-kullanarak-obeb-okek-hesaplamak.html#comments</comments>
		<pubDate>Sun, 15 Apr 2012 14:42:52 +0000</pubDate>
		<dc:creator>Venus</dc:creator>
				<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Matematik]]></category>
		<category><![CDATA[OBEB]]></category>
		<category><![CDATA[OKEK]]></category>
		<category><![CDATA[Visual C#]]></category>

		<guid isPermaLink="false">http://programlama.venus.gen.tr/?p=65</guid>
		<description><![CDATA[Bu programı tasarlarken Visual C# 2005&#8242;i kullandım. Express sürümünü internetten ücretsiz indirebilirsiniz. Yazacağımız program temelde verilen iki sayının Ortak Katlarının En Küçüğü ile Ortak Bölenlerinin En Büyüğünü verecek. Bunun için öncelikle Visual C#&#8217;ı çalıştırıp yeni bir Windows Application projesi açıyoruz. &#8230; <a href="http://programlama.venus.gen.tr/c-sharp/c-kullanarak-obeb-okek-hesaplamak.html">Okumaya devam et <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bu programı tasarlarken Visual C# 2005&#8242;i kullandım. Express sürümünü internetten ücretsiz indirebilirsiniz.</p>
<p>Yazacağımız program temelde verilen iki sayının Ortak Katlarının En Küçüğü ile Ortak Bölenlerinin En Büyüğünü verecek. Bunun için öncelikle Visual C#&#8217;ı çalıştırıp yeni bir Windows Application projesi açıyoruz.</p>
<p>Formumuza;<br />
1 adet label: üzerinde Sayı: 1 yazan,<br />
1 adet label: üzerinde Sayı: 2 yazan,<br />
2 adet textbox, her ikisinin de içinde 0 yazan,<br />
2 adet button,<br />
1 adet label: üzerinde &#8220;0&#8243; yazan ekliyoruz. Aşağıdaki şekilde yerleştiriyoruz:</p>
<p><img src="http://www.anime.web.tr/upload/1204/obebokek.jpg" alt="obebokek" /></p>
<p>Şimdi Form1.cs dosyasının içini açıyoruz. Öncelikle OBEB ve OKEK işlemini yapabilen fonksiyonları ekliyoruz.</p>
<p>OKEK için;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p65code23'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6523"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code" id="p65code23"><pre class="csharp" style="font-family:monospace;">        <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">int</span> okek<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> number1, <span style="color: #6666cc; font-weight: bold;">int</span> number2<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #6666cc; font-weight: bold;">int</span> i<span style="color: #008000;">;</span>
            <span style="color: #6666cc; font-weight: bold;">int</span> max <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span>number1 <span style="color: #008000;">&gt;</span> number2<span style="color: #008000;">&#41;</span> <span style="color: #008000;">?</span> number1 <span style="color: #008000;">:</span> number2<span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #008000;">=</span> max<span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;=</span> number1 <span style="color: #008000;">*</span> number2<span style="color: #008000;">;</span> i <span style="color: #008000;">+=</span> max<span style="color: #008000;">&#41;</span>
            <span style="color: #008000;">&#123;</span>
                <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>i <span style="color: #008000;">%</span> number1 <span style="color: #008000;">==</span> <span style="color: #FF0000;">0</span> <span style="color: #008000;">&amp;&amp;</span> i <span style="color: #008000;">%</span> number2 <span style="color: #008000;">==</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span>
                    <span style="color: #0600FF; font-weight: bold;">return</span> i<span style="color: #008000;">;</span>
            <span style="color: #008000;">&#125;</span>
&nbsp;
            <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>OBEB için;</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p65code24'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6524"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code" id="p65code24"><pre class="csharp" style="font-family:monospace;">        <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">int</span> obeb<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">int</span> number1, <span style="color: #6666cc; font-weight: bold;">int</span> number2<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #6666cc; font-weight: bold;">int</span> i<span style="color: #008000;">;</span>
            <span style="color: #6666cc; font-weight: bold;">int</span> min <span style="color: #008000;">=</span> <span style="color: #008000;">&#40;</span>number1 <span style="color: #008000;">&lt;</span> number2<span style="color: #008000;">&#41;</span> <span style="color: #008000;">?</span> number1 <span style="color: #008000;">:</span> number2<span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF; font-weight: bold;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #008000;">=</span> min<span style="color: #008000;">;</span> i <span style="color: #008000;">&gt;=</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">;</span> <span style="color: #008000;">--</span>i<span style="color: #008000;">&#41;</span>
                <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>number1 <span style="color: #008000;">%</span> i <span style="color: #008000;">==</span> <span style="color: #FF0000;">0</span> <span style="color: #008000;">&amp;&amp;</span> number2 <span style="color: #008000;">%</span> i <span style="color: #008000;">==</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span>
                    <span style="color: #0600FF; font-weight: bold;">return</span> i<span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Sonra 1. buttonun özelliklerinden Text kısmına OKEK yazıyoruz ve formda iki defa tıklayarak kod penceresini açıyoruz. Buraya aşağıdaki kodu yazıyoruz.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p65code25'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6525"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p65code25"><pre class="csharp" style="font-family:monospace;">            label3<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> okek<span style="color: #008000;">&#40;</span>Convert<span style="color: #008000;">.</span><span style="color: #0000FF;">ToInt32</span><span style="color: #008000;">&#40;</span>textBox1<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span><span style="color: #008000;">&#41;</span>, Convert<span style="color: #008000;">.</span><span style="color: #0000FF;">ToInt32</span><span style="color: #008000;">&#40;</span>textBox2<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>2. butona aynı şekilde OBEB yazıp iki defa tıkladığımızda gelen yere aşağıdaki kodu ekliyoruz:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p65code26'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p6526"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p65code26"><pre class="csharp" style="font-family:monospace;">            label3<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span> <span style="color: #008000;">=</span> obeb<span style="color: #008000;">&#40;</span>Convert<span style="color: #008000;">.</span><span style="color: #0000FF;">ToInt32</span><span style="color: #008000;">&#40;</span>textBox1<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span><span style="color: #008000;">&#41;</span>, Convert<span style="color: #008000;">.</span><span style="color: #0000FF;">ToInt32</span><span style="color: #008000;">&#40;</span>textBox2<span style="color: #008000;">.</span><span style="color: #0000FF;">Text</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>İşte bitti. Çalıştırdığımızda verdiğimiz iki sayının OBEB ve OKEK değerlerini hesapladığını göreceksiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://programlama.venus.gen.tr/c-sharp/c-kullanarak-obeb-okek-hesaplamak.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Veritabanı Optimizasyonu</title>
		<link>http://programlama.venus.gen.tr/mysql/veritabani-optimizasyonu.html</link>
		<comments>http://programlama.venus.gen.tr/mysql/veritabani-optimizasyonu.html#comments</comments>
		<pubDate>Fri, 21 May 2010 16:50:13 +0000</pubDate>
		<dc:creator>Venus</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[create index]]></category>
		<category><![CDATA[mysql komutları]]></category>
		<category><![CDATA[order by rand]]></category>
		<category><![CDATA[veritabanı optimizasyonu]]></category>

		<guid isPermaLink="false">http://programlama.venus.gen.tr/?p=52</guid>
		<description><![CDATA[Bu makalede MySQL&#8217;i daha az yormak, sorguların işleniş zamanlarını kısaltmak, sitenizi hızlandırmak için birtakım veritabanı optimizasyonu tavsiyelerinde bulunacağım. Eğer kendi kodlamalarınızla veritabanı kullanacaksanız birçok mysql sorgusu ile boğuşmak durumunda kalabilirsiniz. Kullandığınız tablolar çok fazla veri içerebilir. MySQL sunucusu bu verileri &#8230; <a href="http://programlama.venus.gen.tr/mysql/veritabani-optimizasyonu.html">Okumaya devam et <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bu makalede MySQL&#8217;i daha az yormak, sorguların işleniş zamanlarını kısaltmak, sitenizi hızlandırmak için birtakım veritabanı optimizasyonu tavsiyelerinde bulunacağım.</p>
<p>Eğer kendi kodlamalarınızla veritabanı kullanacaksanız birçok mysql sorgusu ile boğuşmak durumunda kalabilirsiniz. Kullandığınız tablolar çok fazla veri içerebilir. MySQL sunucusu bu verileri işlerken tüm veritabanındaki bilgileri kontrol etmek zorunda kalıyor olabilir. Şimdi ideal bir sorgu yapısını örnekleyelim:</p>
<p><strong>1. Sadece gerekli sütunları sunucudan isteyin:</strong></p>
<p>Tüm sütunları istemek demek, MySQL sunucusunun fazladan ve gereksiz veri göndermesi demektir. Örneğin bir tablodaki sadece başlık ve tarih kısmını kullanmamız gerekiyorsa bunu SELECT [sütunlar] bölümünde belirtmeliyiz.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p52code32'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5232"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p52code32"><pre class="sql" style="font-family:monospace;"># Yanlış Kullanım:
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> haberler <span style="color: #993333; font-weight: bold;">LIMIT</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">10</span>;
&nbsp;
# Doğru Kullanım:
<span style="color: #993333; font-weight: bold;">SELECT</span> baslik<span style="color: #66cc66;">,</span> tarih <span style="color: #993333; font-weight: bold;">FROM</span> haberler <span style="color: #993333; font-weight: bold;">LIMIT</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">10</span>;</pre></td></tr></table></div>

<p><strong>2. ORDER BY rand() kullanımından kaçının.</strong></p>
<p>Gelen verilerin sırasını bildirmemize yarayan ORDER BY komutunun yanında eklenen rand() verilerin rastgele getirilmesini ister. Fakat bu özellikle binlerce kayıt bulunan bir tabloda sunucuya extra yük bindirir. Yaklaşık 120000 kayıtlı bir tabloda rand() kullanırsak en az 0.3 saniye sürecektir sorgumuz. Oysa ideal bir sorgu 0.001-0.005 ms harcamalıdır.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p52code33'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5233"><td class="line_numbers"><pre>1
2
</pre></td><td class="code" id="p52code33"><pre class="sql" style="font-family:monospace;"># Yanlış Kullanım:
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> sarki_sozleri <span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> rand<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">LIMIT</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">10</span>;</pre></td></tr></table></div>

<p>Eğer illa ki rastgele veri almak istiyorsanız, bu işi PHP&#8217;de de yapabileceğinizi unutmayın. Böylelikle yük MySQL&#8217;den kalkacaktır.</p>
<p><strong>3. INDEX kullanın.</strong></p>
<p>MySQL&#8217;de verileri hızlı bir biçimde sıralamak ve karşılığında gelen veriyi bulmak için INDEX yaratmalıyız. Özellikle en çok kullanılan sütunlar için INDEX yaratırsak sunucu daha az zamanda verileri bulacaktır:</p>
<p>İki yolla index ekleyebilirsiniz:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p52code34'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5234"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p52code34"><pre class="sql" style="font-family:monospace;"># <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">.</span> Yol
<span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> tablo_adi <span style="color: #993333; font-weight: bold;">ADD</span> <span style="color: #993333; font-weight: bold;">INDEX</span> index_adi <span style="color: #66cc66;">&#40;</span>sutun1<span style="color: #66cc66;">,</span> sutun2<span style="color: #66cc66;">,</span> <span style="color: #66cc66;">...</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
# <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">.</span> Yol
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> index_adi <span style="color: #993333; font-weight: bold;">ON</span> tablo_adi <span style="color: #66cc66;">&#40;</span>sutun1<span style="color: #66cc66;">,</span> sutun2<span style="color: #66cc66;">,</span> <span style="color: #66cc66;">...</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>


<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p52code35'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5235"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p52code35"><pre class="sql" style="font-family:monospace;"># Örneğ<span style="color: #993333; font-weight: bold;">in</span> aşağıdaki tarz bir sorguyu sıkça kullanıyorsak:
<span style="color: #993333; font-weight: bold;">SELECT</span> baslik <span style="color: #993333; font-weight: bold;">FROM</span> haberler <span style="color: #993333; font-weight: bold;">WHERE</span> dosya <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;dosya_adi&quot;</span> <span style="color: #993333; font-weight: bold;">AND</span> kategori <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">&quot;1&quot;</span>;
&nbsp;
# Aşağıdaki gibi bir <span style="color: #993333; font-weight: bold;">index</span> yaratma yoluna gidebiliriz:
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">INDEX</span> l_dosya_kat <span style="color: #993333; font-weight: bold;">ON</span> haberler <span style="color: #66cc66;">&#40;</span>dosya<span style="color: #66cc66;">,</span> kategori<span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Böylelikle bu tarz sorgular daha az zaman harcayacaktır.</p>
<p>Eğer tablodaki CHAR, VARCHAR, TEXT gibi yazı içeren verilerde LIKE &#8220;%kelime%&#8221; tarzı aramalar gerçekleştiriyorsanız. FULLTEXT INDEX&#8217;i kullanabilirsiniz.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p52code36'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5236"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p52code36"><pre class="sql" style="font-family:monospace;"># Şarkı sözü tablomuzda sözlerin bulunduğu sütuna bunu ekliyoruz<span style="color: #66cc66;">.</span>
<span style="color: #993333; font-weight: bold;">CREATE</span> FULLTEXT <span style="color: #993333; font-weight: bold;">INDEX</span> l_sozler <span style="color: #993333; font-weight: bold;">ON</span> sarkisozleri <span style="color: #66cc66;">&#40;</span>sozler<span style="color: #66cc66;">&#41;</span>;
&nbsp;
# Ve eğer sözlerde arama yapacaksak bunu kullanmamız yeterli:
<span style="color: #993333; font-weight: bold;">SELECT</span> isim<span style="color: #66cc66;">,</span> soz <span style="color: #993333; font-weight: bold;">FROM</span> sarkisozleri <span style="color: #993333; font-weight: bold;">WHERE</span> MATCH<span style="color: #66cc66;">&#40;</span>sozler<span style="color: #66cc66;">&#41;</span> AGAINST<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'kelime'</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<p>Yukarıdaki örnek çalıştırılsaydı içinde &#8220;kelime&#8221; geçen tüm şarkı sözleri sorgu sonucu olarak yansıtılırdı.</p>
<p>Umarım sizlere faydalı olur bu yazı.</p>
<p>Unutmadan <a href="http://html.sitesi.web.tr/">HTML Dersleri</a> sayfamızdan sonra <a href="http://sql.sitesi.web.tr/">MySQL Komutları</a> sayfamız da tamamlandı. Veritabanları ile ilgili yardım için bu siteyi kullanabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://programlama.venus.gen.tr/mysql/veritabani-optimizasyonu.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fazladan Taksimli Adresler</title>
		<link>http://programlama.venus.gen.tr/digerleri/fazladan-taksimli-adresler.html</link>
		<comments>http://programlama.venus.gen.tr/digerleri/fazladan-taksimli-adresler.html#comments</comments>
		<pubDate>Mon, 14 Dec 2009 21:06:19 +0000</pubDate>
		<dc:creator>Venus</dc:creator>
				<category><![CDATA[Diğerleri]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[mod rewrite]]></category>
		<category><![CDATA[rewritecond]]></category>
		<category><![CDATA[rewriterule]]></category>

		<guid isPermaLink="false">http://programlama.venus.gen.tr/?p=50</guid>
		<description><![CDATA[Bugün Google&#8217;ın sitelerimden birini adres.com/dosya// şeklinde dizinine eklediğini gördüm. Normal şartlar altında böyle olmaması gerek. Ya birileri bu şekilde bağlantı verdi ve google da bu bağlantıyı kontrol etti. Ya da bir iç kod hatası sonucu bu sayfaya ulaşabildi. Ama sorun &#8230; <a href="http://programlama.venus.gen.tr/digerleri/fazladan-taksimli-adresler.html">Okumaya devam et <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bugün Google&#8217;ın sitelerimden birini adres.com/dosya// şeklinde dizinine eklediğini gördüm. Normal şartlar altında böyle olmaması gerek. Ya birileri bu şekilde bağlantı verdi ve google da bu bağlantıyı kontrol etti. Ya da bir iç kod hatası sonucu bu sayfaya ulaşabildi. Ama sorun şu ki bu adreslerin düzeltilmesi ve tek bölü işareti ile yayınlanması gerekliydi.</p>
<p>İnternette biraz araştırdım ve benzer sorunu yaşayabilecek arkadaşlar için HTACCESS dosyasında yapacakları küçük bir düzenlemeyle buna engel olabileceklerini öğrendim.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p50code38'); return false;">View Code</a> HTACCESS</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5038"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p50code38"><pre class="htaccess" style="font-family:monospace;">RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)//$
RewriteRule . http://www.adres.com%1/ [R=301]</pre></td></tr></table></div>

<p>Böylelikle ola ki arama motoru arkadaşçıl (SEF) adreslerle çalışan bir siteniz varsa yanlış bir indexlenmenin önüne geçmiş olacaksınız&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://programlama.venus.gen.tr/digerleri/fazladan-taksimli-adresler.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C# ile Hazırlanan Programı Kapatmak</title>
		<link>http://programlama.venus.gen.tr/c-sharp/c-ile-hazirlanan-programi-kapatmak.html</link>
		<comments>http://programlama.venus.gen.tr/c-sharp/c-ile-hazirlanan-programi-kapatmak.html#comments</comments>
		<pubDate>Wed, 05 Aug 2009 12:37:06 +0000</pubDate>
		<dc:creator>Venus</dc:creator>
				<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[program kapatma kodu]]></category>
		<category><![CDATA[program kapatmak]]></category>

		<guid isPermaLink="false">http://programlama.venus.gen.tr/?p=44</guid>
		<description><![CDATA[C-Sharp kullanılarak hazırladığınız programı yeri geldiğinde kapatmak konusunda sıkıntı yaşayabilirsiniz. İşlemdeki bir form yüklenirken bazı kodların çalışmadığını göreceksiniz. Bu nedenle programınızı kapatmak için yerine göre aşağıdaki kodlardan birini kullamalısınız. form.Close(); Formu kapatır. Form yüklenirken bu kod çalışmaz. Eğer program tek &#8230; <a href="http://programlama.venus.gen.tr/c-sharp/c-ile-hazirlanan-programi-kapatmak.html">Okumaya devam et <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>C-Sharp kullanılarak hazırladığınız programı yeri geldiğinde kapatmak konusunda sıkıntı yaşayabilirsiniz. İşlemdeki bir form yüklenirken bazı kodların çalışmadığını göreceksiniz. Bu nedenle programınızı kapatmak için yerine göre aşağıdaki kodlardan birini kullamalısınız.</p>
<p><b>form.Close();</b><br />
Formu kapatır. Form yüklenirken bu kod çalışmaz. Eğer program tek formdan oluşuyorsa bu aynı zamanda programı kapatmak anlamına gelecektir.</p>
<p><b>Application.Exit();</b><br />
Eğer GUI kullandıysanız bu işinize yarayacaktır.</p>
<p><b>Environment.Exit(kod);</b><br />
Diğer bir programı kapatma kodudur. Parantez içindeki yer bir integer değeri olup buradaki değer programın kapatılış kodudur. Bu konuda bir bilginiz yoksa 0 yazın.</p>
<p><b>Process.GetCurrentProcess().Kill();</b><br />
Bu da diğer bir etkili yol. Nasıl Process.Start(&#8220;yol&#8221;) kullanılarak bir program çalıştırılıyorsa, C# kullanarak bir programı bu yolla kapatabilirsiniz. GetCurrentProcess() bir fonksiyon olup kullanılan programa işaret eder.</p>
]]></content:encoded>
			<wfw:commentRss>http://programlama.venus.gen.tr/c-sharp/c-ile-hazirlanan-programi-kapatmak.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

