<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="0.92">
<channel>
	<title>MT312 &#187; 正規表現メモ</title>
	<link>http://www.mt312.com</link>
	<description></description>
	<lastBuildDate>Tue, 15 Apr 2008 05:43:06 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>ja</language>
	
	<item>
		<title>正規表現メモ</title>
		<description>パターン中のメタ文字を纏めてエスケープする
PHP4.3.3以降では、\Q～\Eで囲むとメタ文字を纏めてエスケープできます。
[php]
preg_match('/^\Q(+*%&)\E$/', '(+*%&)');
[/php]
部分的にオプションを変更する
(?オプション文字)を使うとオプションの設定と解除が可能です。
[php]
// 設定
preg_match('/abc((?i)def)ghi/', 'abcDEFghi', $matches);
print_r($matches);
// Array ( [0] => abcDEFghi [1] => DEF )

// 解除
preg_match('/abc((?-i)def)ghi/i', 'ABCdefGHI', $matches);
print_r($matches);
// Array ( [0] => ABCdefGHI [1] => def )
[/php]
部分的にキャプチャを避ける
(?:)を使うとサブパターンがキャプチャされなくなります。
[php]
preg_match('/(?:say) (hello)/', 'say hello', $matches);
print_r($matches);
// Array ( [0] => say hello [1] => hello )
[/php]
キャプチャにキーを指定する
(?P&#60;キー名&#62;パターン)でキーを指定できます。
[php]
preg_match('/say (?Phello)/', 'say hello', $matches);
print_r($matches);
// Array ( [0] => say hello ...</description>
		<link>http://www.mt312.com/php/46/</link>
			</item>
</channel>
</rss>
