基本サンプル
正規表現でOR条件を実現にするには「|」を記述する。/文字1|文字2/文字1または文字2に一致
	$tests[] = "大きなネコと小さなイヌがいました。";
	$tests[] = "大きなネコがいました。";
	$tests[] = "小さなイヌがいました。";
	$tests[] = "普通サイズのヤギがいました。";
	
	foreach($tests as $test){
		if(preg_match('/イヌ|ネコ/', $test)){
			echo $test.'→'.'○<br>';
		}else{
			echo $test.'→'.'×<br>';
		}
	}
	
	
	出力
	大きなネコと小さなイヌがいました。→○ 大きなネコがいました。→○ 小さなイヌがいました。→○ 普通サイズのヤギがいました。→×
応用サンプル
文字列に日付が含まれているか調べる正規表現のサンプル。
	$tests=null;
	$tests[] = "いろは2016-6-6ネコ";
	$tests[] = "いろは2016/6/6イヌ";
	$tests[] = "いろは2016年6月6日ヤギ";
	$tests[] = "いろは";
	foreach($tests as $test){
		$re = '/([1-9][0-9]{3})¥/|-|年([1-9]{1}|1[0-2]{1})¥/|-|月([1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1})/';
		if(preg_match($re, $test)){
			echo $test.'→'.'○<br>';
		}else{
			echo $test.'→'.'×<br>';
		}
	}
	
	いろは2016-6-6ネコ→○ いろは2016/6/6イヌ→○ いろは2016年6月6日ヤギ→○ いろは→×
サンプル1
シンプルな正規表現。広い範囲の日付書式を取得できる。しかし、99月99日なんていうのも取れてしまう。/([0-9]{4})(\/|-|年)([0-9]{1,2})(\/|-|月)([0-9]{1,2})/
	いろは2016-6-6ネコ → 2016-6-6 いろは2016-06-06タヌキ → 2016-06-06 いろは2016-12-31ロバ → 2016-12-31 いろは9999-99-99ブタ → 9999-99-99 いろは2016/6/6イヌ → 2016/6/6 いろは2016年6月6日ヤギ → 2016年6月6 いろは2016-6カニ → 一致なし いろは2016カニ → 一致なし いろは → 一致なし
サンプル2
サンプル1より少し厳密に日付を取得できるが、6月31日(6月は30日まで)など存在しない日付の値まで取得できてしまう。/([1-9][0-9]{3})\/|-|年([1-9]{1}|1[0-2]{1})\/|-|月([1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1})/
	いろは2016-6-6ネコ → 2016-6-6 いろは2016-6-31 → 2016-6-31 いろは2016-06-06タヌキ → 2016-06-06 いろは2016-12-31ロバ → 2016-12-31 いろは9999-99-99ブタ → 一致なし いろは2016/6/6イヌ → 2016/6/6 いろは2016年6月6日ヤギ → 2016年6月6 いろは2016-6カニ → 一致なし いろは2016カニ → 一致なし いろは → 一致なし
検証
preg_match 関数に様々な正規表現を指定して、それぞれの一致を検証する。あいうえお9aabbc123
| x:正規表現 | 一致 | 説明 | 
|---|---|---|
| /あ/ | ○ | 「あ」が文字列中に含まれているか | 
| /い/ | ○ | 「い」が文字列中に含まれているか | 
| /12/ | ○ | 「12」が文字列中に含まれているか | 
| /^あ/ | ○ | 先頭は「あ」であるか | 
| /^い/ | × | 先頭は「い」であるか | 
| /3$/ | ○ | 末尾は「3」であるか | 
| /2$/ | × | 末尾は「2」であるか | 
| /\d[1]$/ | × | 末尾は数値か(1連続) | 
| /\d[2]$/ | × | 末尾は2連続の数値か | 
| /\d[3]$/ | ○ | 末尾は3連続の数値か | 
| /\d[4]$/ | × | 末尾は4連続の数値か | 
| /\d[1,2]$/ | × | 末尾の1-2番目に数値が含まれているか | 
| /\d[1,3]$/ | ○ | 末尾の1-3番目に数値が含まれているか | 
| /\d[1,4]$/ | × | 末尾の1-4番目に数値が含まれているか | 
| /^\d[1,4]/ | × | 先頭の1-4番目に数値が含まれているか | 
| /a[2]/ | × | 「aa」が含まれているか | 
| /a[3]/ | × | 「aaa」が含まれているか | 
| /\w/ | ○ | 「A-Za-z0-9_」が含まれているか | 
| /^\d+$/ | × | すべて数値か | 
| /^\w+$/ | × | すべて半角英数字か | 
| /^[ぁ-んァ-ン]+\w+$/ | ○ | 前半はかな(カタカナも含む)で後半は半角英数字であるか | 
| /(^あい)(.*)(23$)/ | ○ | 「あい」と「23」で挟まれているか? | 
| /d{2,8}/ | 2~8桁の連続する数値が含まれているか? | 
| 文字列 | /^insert\s/i | /;$/ | /(^INSERT\s)(.*)(;$)/i | 
|---|---|---|---|
| INSERT id,name,val (111,'test',9); | ○ | ○ | ○ | 
| INSERT id,name,val (111,'test',9) | ○ | × | × | 
| (222,'test',9); | × | ○ | × | 
	<?php 
	$str ="ヒージャー(やぎ)を散歩する";
	$re = '/(\()(.*)(\))/';
	preg_match($re, $str,$match);
	$str2=null;
	if(!empty($match[2])){
		$str2 = $match[2];
	}
	echo $str2;
	?>
	
	やぎ
	if(preg_match('/;|<|>|%|\$|\.\/|\\\\/', 'xxx.png')){
		echo 'err<br>';
	}else{
		echo 'ok<br>';
	}
	
	
	出力
	ok
例1
正規表現:赤い.*エサ大きな赤い猫にエサを与える 小さな赤い犬にエサを与えてみた。
例2:「 ( 」が含まれる場合
正規表現:¥(length=.*)var str1 = '123' (length=3) // test test_data (length=10) // test
	$xml_str= "< animal  >< cat  >赤い猫<cat  >< dog>灰色の犬</ dog>< /  animal >";
	$xml_str = preg_replace('/<¥s+/','<',$xml_str);
	$xml_str = preg_replace('/<¥/¥s+/','</',$xml_str);
	$xml_str = preg_replace('/¥s+>/','>',$xml_str);
	var_dump($xml_str);// → '<animal><cat>赤い猫<cat><dog>灰色の犬</dog></animal>'
	
	$strs = [];
	$strs[] = "abc-123_5.csv";
	$strs[] = "ねこ";
	$strs[] = "cat";
	$strs[] = 987;
	$strs[] = "";
	$strs[] = '-_';
	$strs[] = 'abcあ';
	
	foreach($strs as $str){
		echo $str;
		if (preg_match("/^[a-zA-Z0-9-_.]+$/", $str)) {
			echo "¥t〇<br>";
		} else {
			echo "¥t×<br>";
		}
	}
	出力
abc-123_5.csv 〇
ねこ ×
cat 〇
987 〇
×
-_ 〇
abcあ ×