<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
   <channel>
      <title>試して学習・実践正規表現</title>
      <link>http://www.wakusan.com/regular_expression/</link>
      <description>正規表現を実際に試しながら理解できる入門ブログ
2007/02/11正規表現チェッカーがpreg_match_allに対応し、キャプチャーした内容を配列形式で表示するようになりました。</description>
      <language>ja</language>
      <copyright>Copyright 2007</copyright>
      <lastBuildDate>Sun, 20 May 2007 22:43:42 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>文字数のチェックの注意事項</title>
         <description>　原文に改行が含まれる場合、mオプションが必要なときがあります。perl系の正規表現では必須です。行単位で行数回数のマッチを試みるからです。これは複数行のテキストエリアの入力の場合に、注意が必要です。PHPで言うなら、eregの場合は動いてもpreg_matchだと動かない場合があるということです。気をつけましょう。
　例えば、文字数だけの場合&apos;/^.{1,100}$/m&apos;のような感じです。こうすることで、複数行にまたがります。複数テキストボックスからの入力から正規表現を使う場合は注意しましょう。
　英文の場合、単語の途中で改行は一般的にしないで、行単位を基本にした方が、都合が良いのでしょう。</description>
         <link>http://www.wakusan.com/regular_expression/2007/05/post_19.html</link>
         <guid>http://www.wakusan.com/regular_expression/2007/05/post_19.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現の事例</category>
        
        
         <pubDate>Sun, 20 May 2007 22:43:42 +0900</pubDate>
      </item>
            <item>
         <title>拡張子を得る</title>
         <description><![CDATA[<p>
ファイルネームから、拡張子だけ知りたいときがあります。
</p>
<p>
ファイルネームが、指定の拡張子かどうか調べるには、
</p>
<p>
【(\.gif|\.jpg)】のように【｜】で区切った拡張子を記入していけばOKです。
</p>
<p>
また、拡張子を取り出したい場合は、
</p>
<p>
【\..*】をプログラム上で処理します。PHPの場合は、【ereg（&quot;\..*&quot;,$filename,$res)】のように使うと、変数$res[0]に拡張子が入ります。ドット以降の文字列を取得するだけの正規表現ですが、ファイルネームに拡張子以外のドットが含まれるといったことが無ければ、これで大丈夫です。ファイルネームが、ディレクトリなどを含む場合は、basename（$filename）としておけば純粋にファイル部分だけが取り出せます。
</p>
]]></description>
         <link>http://www.wakusan.com/regular_expression/2007/02/post_18.html</link>
         <guid>http://www.wakusan.com/regular_expression/2007/02/post_18.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現の事例</category>
        
        
         <pubDate>Wed, 14 Feb 2007 14:45:01 +0900</pubDate>
      </item>
            <item>
         <title>正規表現チェッカーが新しくなりました</title>
         <description><![CDATA[<p>
　正規表現チェッカーは、正規表現を学習、利用、チェックする為のツールです。
</p>
<p>
　正規表現をプログラミングなどで使う場合、作成中のプログラムで動作確認をしながら正規表現を組み立てるのでは効率が悪いです。このチェッカーは、純粋に正規表現が思うように動作しているかだけを調べられます。
</p>
<p>
　使い方は簡単です。作成した正規表現と試しにマッチさせるテキストを入力して、チェックボタンをクリックすてば、マッチするかどうか表示されます。 　現在、
</p>
<ul>
	<li><a href="seiki_check.php" target="_blank" title="正規表現チェッカーPHP　Basic">正規表現チェッカーＰＨＰ　Basic　version</a>（True、False表示のみ）</li>
	<li><a href="seiki_chapture_check.php" title="正規表現チェッカーCapture">正規表現チェッカーPHP　ｃapture　version</a>（Trueの場合、マッチした文字列を配列表示）</li>
	<li><a href="http://www.wakusan.com/regular_expression/seiki_check_js.php">JavaScriptバージョン</a></li>
</ul>
<p>
が稼動しております。 　PHPバージョンは、ereg、mb_ereg、preg_match_allの３つの関数を選択できます。
</p>
<p>
　正規表現チェッカーに関するお問い合わせ、ご質問、要望、バグ報告などは、ここへコメントしていただければ幸いです。
</p>
]]></description>
         <link>http://www.wakusan.com/regular_expression/2007/02/post_17.html</link>
         <guid>http://www.wakusan.com/regular_expression/2007/02/post_17.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現チェッカー</category>
        
        
         <pubDate>Sun, 11 Feb 2007 23:26:15 +0900</pubDate>
      </item>
            <item>
         <title>正規表現の範囲は？</title>
         <description><![CDATA[<p>
　今までは条件に合うかどうかだけをを考えてきました。しかし、正規表現は、長いテキストから、条件に合う部分を抜き出すということもできます。その時に悩むのが、範囲指定です。
</p>
<p>
　例えば<br />
【東京は晴れです。京都は雨です。】というテキストあるとして、【東京から始まって「。」で終わる一文】を探す場合、【東京*。】とすると、マッチはしますが、内容は【東京は晴れです。京都は雨です。】と最後の「。」まで広く検索します。
</p>
<p>
　この検索は、最長検索と呼ばれています。つまり、条件に合う一番広い範囲を優先するということです。正規表現では、マッチする、しないだけではなく、その文字を抜き出す、検索するといった作業を伴う場合も多いので、こでは困ります。例えば「&rdquo;」で囲まれた部分とか、【】で囲まれた部分をチェックしたい場合、長い文章にそれがいくつも存在すれば、最初に出てくる部分から、一番最後の部分を取り込むことになってしま、うまくいきません。そこで、メタキャラクタ【？】を使います。【？】は、０文字もしくは１文字という意味なのですが、【+？】or【*？】のように使うと、検索を最短にします。といっても解りにくいですね。
</p>
<p>
最初の例の場合、【東京*。*?】などとします。すると、東京から始まって、任意の文字列【*】があって、【。】があって、<strong>任意の０文字もしくは１文字（*?）文字列があるとなります。</strong>言葉がおかしいのですが、【。】一回出てくれば十分なのですから、最長検索をする必要は無いと判断されるようです。結果として、最短検索になります。
</p>
<p>
　このように、テキストから、条件に合う部分を抜き出すのをマッチさせると区別して、キャプチャーすると言う場合もあります。
</p>
<p>
　この記事を書いている現在、正規表現チェッカーでは判断できません。時間を見つけて、正規表現キャプチャーチェッカーも作ろうと思います。
</p>
]]></description>
         <link>http://www.wakusan.com/regular_expression/2007/02/post_16.html</link>
         <guid>http://www.wakusan.com/regular_expression/2007/02/post_16.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現とは</category>
        
        
         <pubDate>Thu, 08 Feb 2007 22:35:14 +0900</pubDate>
      </item>
            <item>
         <title>正規表現チェッカーとは</title>
         <description><![CDATA[　正規表現チェッカーは、正規表現を学習、利用ｍチェックする動作確認ツールです。作成した正規表現が思うようにマッチするのかどうかを簡単に調べることができます。

　使い方は簡単です。作成した正規表現と試しにマッチさせるテキストを入力して、チェックボタンをクリックすてば、マッチするかどうか表示されます。

　現在、<a href="http://www.wakusan.com/regular_expression/seiki_check.php">ＰＨＰバージョン</a>と、<a href="http://www.wakusan.com/regular_expression/seiki_check_js.php">JavaScriptバージョン</a>が稼動しております。

　正規表現チェッカーに関するお問い合わせ、ご質問、要望、バグ報告などは、ここへコメントしていただければ幸いです。
]]></description>
         <link>http://www.wakusan.com/regular_expression/2007/01/post_15.html</link>
         <guid>http://www.wakusan.com/regular_expression/2007/01/post_15.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現チェッカー</category>
        
        
         <pubDate>Tue, 23 Jan 2007 16:58:52 +0900</pubDate>
      </item>
            <item>
         <title>郵便番号にマッチさせる</title>
         <description>　郵便番号にマッチする正規表現は
【^[0-9]{3}-[0-9]{4}$】
のようになります。数字が３桁と、ハイフン、そして数字が４桁。比較的簡単ですね。
</description>
         <link>http://www.wakusan.com/regular_expression/2007/01/post_14.html</link>
         <guid>http://www.wakusan.com/regular_expression/2007/01/post_14.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現の事例</category>
        
        
         <pubDate>Tue, 23 Jan 2007 16:26:12 +0900</pubDate>
      </item>
            <item>
         <title>拡張子にマッチさせる</title>
         <description>ファイル名の拡張子にマッチさせてみましょう。
例えば、画像ファイル、jpg、gif、bmpのファイルにマッチさせます。

【(\.gif|\.jpg)$】

これは、元のファイル命の最後の部分（＄）が、指定されたテキストであるかどうかを調べています。実際には、拡張子を【｜】で区切って沢山書くことが出来ますし、もちろん画像でなくとも必要な形式に書き換えればよいのです。</description>
         <link>http://www.wakusan.com/regular_expression/2007/01/post_13.html</link>
         <guid>http://www.wakusan.com/regular_expression/2007/01/post_13.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現の事例</category>
        
        
         <pubDate>Sun, 07 Jan 2007 19:05:57 +0900</pubDate>
      </item>
            <item>
         <title>URLにマッチさせる</title>
         <description>ホームページのアドレスとマッチさせる正規表現を考えます。

http://[a-z]?[a-z0-9]*\.[a-z]+[\\\.-_&amp;?=%a-zA-Z]*$

【解説】
　http://で始まり、小英字から始まり、小英数字が並び、ドットを挟んで、小英字でドメインを構成
後半は、URLで使われる記号「\.-_/」とGETなどで使う「&amp;?=%」、更に英数字で構成されることを示してる。</description>
         <link>http://www.wakusan.com/regular_expression/2006/11/url.html</link>
         <guid>http://www.wakusan.com/regular_expression/2006/11/url.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現の事例</category>
        
        
         <pubDate>Sun, 19 Nov 2006 15:15:56 +0900</pubDate>
      </item>
            <item>
         <title>電話番号にマッチさせる</title>
         <description>電話番号にマッチさせるのは、ちょっと難しいです。それは、市外局番、市内局番を分けるハイフンの位置が異なるからです。

携帯番号にマッチ

^0[1-9]0-[0-9]{4}-[0-9]{4}$

【解説】０数字０で始まり、ハイフン、数字４桁、ハイフン、数字４桁で終わる形です。

一般回線にマッチ
ハイフンがない形式なら簡単です。

^0[0-9]{9}$

【解説】
０で始まって、９桁の数字が続く

ハイフンが必要

^0[0-9]{1,4}-[0-9]{1,4}-[0-9]{4}$

【解説】
０から始まり、４桁以内の数字の後にハイフン、その後に1～４桁の数字、ハイフン、４桁の数字となります。しかしながら、この場合、２桁-１桁-４桁でもマッチしてしまいます。実際に使うときには、上記の表現と、｛12｝（全部で１２文字）と２種類ともマッチさせて使うのが良いかと思います。



</description>
         <link>http://www.wakusan.com/regular_expression/2006/11/post_11.html</link>
         <guid>http://www.wakusan.com/regular_expression/2006/11/post_11.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現の事例</category>
        
        
         <pubDate>Sun, 19 Nov 2006 14:32:01 +0900</pubDate>
      </item>
            <item>
         <title>メールアドレスにマッチさせる</title>
         <description>さて、ここからは、実際に正規表現を組み立てます。

一回目は、メールアドレスにマッチさせましょう。

^[a-zA-Z].*@[\.-_a-zA-Z0-9].+\.[a-zA-Z]+$

こんな感じにしてみました。開設すると、
アルファベットで始まり、任意の文字が続き、＠が挟まって、その右に英数字と「.-_」の記号の羅列が１文字以上あり、「.」があり、任意のアルファベットで終わるということですね。</description>
         <link>http://www.wakusan.com/regular_expression/2006/11/post_12.html</link>
         <guid>http://www.wakusan.com/regular_expression/2006/11/post_12.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現の事例</category>
        
        
         <pubDate>Sun, 19 Nov 2006 14:23:43 +0900</pubDate>
      </item>
            <item>
         <title>正規表現は使い道</title>
         <description>　正規表現で、一番多く使われる方法は、ユーザーが入力した情報が、正しい形式かどうかを調べるときだと思います。例えば、電話番号や、メールアドレスを入力するとき、正規表現でマッチさせて、マッチしない場合、「そのメールアドレスは間違っています」などと警告を出すときです。ここからは、私の独断と偏見で作った、使えそうな正規表現の記入例を書いていきます。</description>
         <link>http://www.wakusan.com/regular_expression/2006/11/post_10.html</link>
         <guid>http://www.wakusan.com/regular_expression/2006/11/post_10.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現とは</category>
        
        
         <pubDate>Sat, 18 Nov 2006 00:09:54 +0900</pubDate>
      </item>
            <item>
         <title>正規表現をなんに使う？</title>
         <description><![CDATA[　ここまで、<strong>正規表現</strong>について説明してきました。紹介したメタキャラクタなどは、ほんの一部ですし、実施には、複数のメタキャラクタを組み合わせて、利用することが大半です。

このページは、記号の羅列に見える<strong>正規表現</strong>が、どんな働きをしているのかを実感していただければ、それで満足です。ここまで、読み進められた方は、他の難しいページにたどり着いても、その意味が解る程度の基礎知識を身につけていると思います。

　また、現在、動作確認が完璧でない<a href="http://www.wakusan.com/regular_expression/seiki_check.php">正規表現チェッカー</a>ですが、不具合があります。
このスクリプトは、テキストボックスから、テキストを受け取り、そのままif（ereg）で判断しているだけです。エスケープ文字などで不具合があるようです。
　希望があれば、直しますが、私はプログラマーではないので、うまく出来るかどうかわかりません。また、利用する言語により、独自の表現方法が存在するため、詳しい方は、ご自分の環境下で、自作するのが良いかと思います。その際は、無事に動くツールとして、掲載しますので、連絡していただければ幸いです。]]></description>
         <link>http://www.wakusan.com/regular_expression/2006/10/post_9.html</link>
         <guid>http://www.wakusan.com/regular_expression/2006/10/post_9.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現とは</category>
        
        
         <pubDate>Mon, 23 Oct 2006 15:05:57 +0900</pubDate>
      </item>
            <item>
         <title>メタキャラクタ　その４　位置の指定</title>
         <description><![CDATA[　次に、簡単な例を出してみます。
条件【a】文字列【abc】=【マッチします。】

この場合、他にどのような文字列がマッチすると思いますか？
実は、【bba】【bac】など、文字列の長さにも、「a」の条件がある場所も関係なく、「a」がどこかにあれば、全てマッチします。

しかしながら、場合によっては、文字列の先頭が「a」のときだけマッチさせたい場合が出てきます。その場合の、<strong>正規表現</strong>を説明します。

【^a】【abc】＝マッチします。
この【＾】は、文字列の先頭を対称にするという意味を持ちます。ですので、この場合、【baa】ではマッチしなくなります。

　なお、先頭ではなく最後を示す場合は、【$】を使います。



]]></description>
         <link>http://www.wakusan.com/regular_expression/2006/10/post_8.html</link>
         <guid>http://www.wakusan.com/regular_expression/2006/10/post_8.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現とは</category>
        
        
         <pubDate>Mon, 23 Oct 2006 14:48:32 +0900</pubDate>
      </item>
            <item>
         <title>メタキャラクタ　その３　複数条件</title>
         <description>　ここでは、条件を複数指定したい場合を考えます。

例えば、条件Aと条件Bのどちらかの条件に合えば、マッチする。
という場合です。一番簡単な表現で考えましょう。

【|】を使う
【|】は、条件を複数指定するためのメタキャラクタです。次のように使います。
【abc|あいう】【あいう】＝【マッチします。】
この条件の場合、【abc】か、【あいう】の文字列のどちらかが、もしくは両方が存在すればマッチすることになります。
もう少し例を挙げると、【abcあいう】【あいうえお】【abcdefg】はマッチしますが、【ａｂあい】はマッチしません。

さらに【|】を使う
【|】は、なにも２つだけの条件ではなく、【あいう｜abc｜１２３】など必要なだけ指定することが出来ます。
</description>
         <link>http://www.wakusan.com/regular_expression/2006/10/post_7.html</link>
         <guid>http://www.wakusan.com/regular_expression/2006/10/post_7.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現とは</category>
        
        
         <pubDate>Mon, 23 Oct 2006 14:30:04 +0900</pubDate>
      </item>
            <item>
         <title>メタキャラクタ　その２　文字数指定</title>
         <description>　先ほど、【.】は、一文字の伏字のようなものと書きました。
しかしながら、一文字ではなく、文字数を指定して使うことが出来ます。

その方法は、【*】や【+】【｛｝】を組み合わせて使います。

それでは、ひとつづつ例をあげながら説明します。

【*】を使う。

【a.*c】【abbbbbbbbbc】＝【マッチします】
【*】は、０文字以上の任意の文字を指定します。０でもよいということは、【ac】もマッチします。しかしながら、【ca】はマッチしません。


【+】を使う。
　上記の例の【.*】を【.+】にします。この場合は、１文字以上になりますので、【ac】はマッチしません。

【?】を使う
　上記の例の【.*】を【.？】にします。この場合は、０文字か、１文字なので、【ac】や【aｂc】はマッチしますが、【abbc】はマッチしません

【｛｝】を使う
　文字数を、明確に指定することが出来ます。
【a.｛5｝c】【a12345c】＝【マッチします】
これは、aとcの間に、５文字の任意の文字があればマッチするものです。この例では、【aあいうえおc】はマッチしますが、【ac】や【aあいうえおかc】はマッチしません。

さらに【｛｝】を使う
　先ほどの文字数指定の方法として、○文字以上、○文字以下という文字数の範囲を指定することも出来ます。
【a.｛5,10｝c】【a123456789c】＝【マッチします】
　この例では、aとｃの間に、５文字以上、10文字以内の任意の文字があるときにマッチします。つまり、【aあいうえおc】も、【aあいうえおかきくけこc】もマッチします。</description>
         <link>http://www.wakusan.com/regular_expression/2006/10/post_6.html</link>
         <guid>http://www.wakusan.com/regular_expression/2006/10/post_6.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">正規表現とは</category>
        
        
         <pubDate>Mon, 23 Oct 2006 13:50:51 +0900</pubDate>
      </item>
      
   </channel>
</rss>
