<?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>QUOIT Blog &#187; 正規表現</title>
	<atom:link href="http://ken.quoit.jp/tag/%e6%ad%a3%e8%a6%8f%e8%a1%a8%e7%8f%be/feed/" rel="self" type="application/rss+xml" />
	<link>http://ken.quoit.jp</link>
	<description>Programming, OpenSource, HTML/CSS etc...</description>
	<lastBuildDate>Sat, 04 Feb 2012 17:18:36 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>正規表現を勉強しよう</title>
		<link>http://ken.quoit.jp/2009/11/16/%e6%ad%a3%e8%a6%8f%e8%a1%a8%e7%8f%be%e3%82%92%e5%8b%89%e5%bc%b7%e3%81%97%e3%82%88%e3%81%86/</link>
		<comments>http://ken.quoit.jp/2009/11/16/%e6%ad%a3%e8%a6%8f%e8%a1%a8%e7%8f%be%e3%82%92%e5%8b%89%e5%bc%b7%e3%81%97%e3%82%88%e3%81%86/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 10:18:18 +0000</pubDate>
		<dc:creator>yakumo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[正規表現]]></category>

		<guid isPermaLink="false">http://ken.quoit.jp/?p=314</guid>
		<description><![CDATA[タイトルは正直、自分に言っているわけですがｗ 例によって自分の解釈で表記していきます。 間違っている、ここおかしいじゃねえか、などありましたらコメント欄にてツッコミください。 ＜正規表現とは＞ 正規表現を簡単に説明すると、「ある文字列を探し出す条件を表す文字列（パターン）」です。 特殊な書き方をしますので、プログラミングを始めたばかりの方にはとっつきにくいイメージがあると思います。 （実際自分がそうでしたｗ） ただ、この正規表現を使いこなすことができると、プログラムを作る上で絶大な効果を発揮します。 PHPでのとても簡単な一例を。 【メールアドレスで「＠」以降のドメイン部分を取得する】 $mail_address = &#8220;yakumo@quoit.jp&#8221;; if($parts = preg_replace(&#8220;/.*@/i&#8221;,&#8221;",$mail_address)){ echo $parts; } 《出力結果》 quoit.jp ドメイン名部分だけが表示されました。 今回はperl互換の正規表現が使える「preg_replace」関数を使いました。 この関数で、元の文字列から「＠」以前を取り除くという置き換えを行なっています。 このコードでのミソは「&#8221;/.*@/i&#8221;」という正規表現の条件です。 「/」で囲むことで、ここからここまでが条件文だよ、という意味です。（他の文字に置き換えることが可能） 「.」は「何でも良い一文字」を表します。 「*」は「直前の文字が複数続きますよ」を表します。 最後にくっついている「i」は正規表現のオプションで、「大文字小文字を区別しなくていいよ」という意味です。 つまり、「何でも良い文字の連続」があって、その後に「@」が来てたら、条件に合致するよ、という正規表現です。 「.」や「*」は「メタ文字」と呼ばれ、正規表現の中で特別な意味を持つ文字です。 この「メタ文字」は他にもいろいろあり、組み合わせることで高度な条件を作ることができます。 初めての方はこちらのページでどんなメタ文字／オプションがあるのか見ておくと良いです。 サルにもわかる正規表現入門 PHP 正規表現の基本 （preg_match） &#8211; どうにかなるBLOG 基本的なことは上記ページで学んでおきましょう。 また、正規表現のサンプル集がWEB上にたくさんありますので、そのサンプルを見て勉強するのも良いと思います。 ＰＨＰ＆正規表現 よし、腰据えてやってみよう！と思ったらこちらを是非。 英語ですが、頑張る価値はある！（と思う） Regular-Expressions.info &#8211; Regex Tutorial, Examples and Reference &#8211; Regexp Patterns 正規表現は難しいですが、プログラミングをするなら必ず学ぶ必要が出てくるはず。 [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>タイトルは正直、自分に言っているわけですがｗ</p>
<p>例によって自分の解釈で表記していきます。<br />
間違っている、ここおかしいじゃねえか、などありましたらコメント欄にてツッコミください。</p>
<p><span id="more-314"></span></p>
<p><strong>＜正規表現とは＞</strong><br />
正規表現を簡単に説明すると、「ある文字列を探し出す条件を表す文字列（パターン）」です。</p>
<p>特殊な書き方をしますので、プログラミングを始めたばかりの方にはとっつきにくいイメージがあると思います。<br />
（実際自分がそうでしたｗ）</p>
<p>ただ、この正規表現を使いこなすことができると、プログラムを作る上で絶大な効果を発揮します。</p>
<p>PHPでのとても簡単な一例を。</p>
<blockquote><p>
【メールアドレスで「＠」以降のドメイン部分を取得する】<br />
$mail_address = &#8220;yakumo@quoit.jp&#8221;;<br />
if($parts = preg_replace(&#8220;/.*@/i&#8221;,&#8221;",$mail_address)){<br />
 echo $parts;<br />
}</p>
<p>《出力結果》<br />
quoit.jp
</p></blockquote>
<p>ドメイン名部分だけが表示されました。<br />
今回はperl互換の正規表現が使える「preg_replace」関数を使いました。<br />
この関数で、元の文字列から「＠」以前を取り除くという置き換えを行なっています。</p>
<p>このコードでのミソは「&#8221;/.*@/i&#8221;」という正規表現の条件です。</p>
<p>「/」で囲むことで、ここからここまでが条件文だよ、という意味です。（他の文字に置き換えることが可能）<br />
「.」は「何でも良い一文字」を表します。<br />
「*」は「直前の文字が複数続きますよ」を表します。<br />
最後にくっついている「i」は正規表現のオプションで、「大文字小文字を区別しなくていいよ」という意味です。</p>
<p>つまり、「何でも良い文字の連続」があって、その後に「@」が来てたら、条件に合致するよ、という正規表現です。</p>
<p>「.」や「*」は「メタ文字」と呼ばれ、正規表現の中で特別な意味を持つ文字です。</p>
<p>この「メタ文字」は他にもいろいろあり、組み合わせることで高度な条件を作ることができます。</p>
<p>初めての方はこちらのページでどんなメタ文字／オプションがあるのか見ておくと良いです。</p>
<blockquote><p>
<a href="http://www.mnet.ne.jp/~nakama/" target="_blank">サルにもわかる正規表現入門</a><br />
<a href="http://sandman.s6.xrea.com/nucleus/item-62.html" target="_blank">PHP 正規表現の基本 （preg_match） &#8211; どうにかなるBLOG</a>
</p></blockquote>
<p>基本的なことは上記ページで学んでおきましょう。</p>
<p>また、正規表現のサンプル集がWEB上にたくさんありますので、そのサンプルを見て勉強するのも良いと思います。</p>
<blockquote><p>
<a href="http://phpspot.net/php/pg%82o%82g%82o%81%95%90%B3%8BK%95%5C%8C%BB.html" target="_blank">ＰＨＰ＆正規表現</a>
</p></blockquote>
<p>よし、腰据えてやってみよう！と思ったらこちらを是非。<br />
英語ですが、頑張る価値はある！（と思う）</p>
<blockquote><p><a href="http://www.regular-expressions.info/" target="_blank">Regular-Expressions.info &#8211; Regex Tutorial, Examples and Reference &#8211; Regexp Patterns</a>
</p></blockquote>
<p>正規表現は難しいですが、プログラミングをするなら必ず学ぶ必要が出てくるはず。<br />
頑張って覚えていきましょう。<br />
<small>（主に僕がｗ）</small></p>
<p></p>
<hr />
<small><br />
＜おまけ：注意＞<br />
また、有名な話しですが、メールアドレスを合致させる正規表現について、半年ほど前に一悶着ありました。<br />
<a href="http://blog.livedoor.jp/dankogai/archives/51189905.html" target="_blank">404 Blog Not Found:「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ</a><br />
騒動の顛末はともかく、メールアドレスについては正規表現で表すのが困難だよ、というお話です。<br />
</small></p>
<div class="shr-publisher-314"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://ken.quoit.jp/2009/11/16/%e6%ad%a3%e8%a6%8f%e8%a1%a8%e7%8f%be%e3%82%92%e5%8b%89%e5%bc%b7%e3%81%97%e3%82%88%e3%81%86/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

