正規表現

エスケープシーケンス

エスケープシーケンス内容
¥tタブ
¥n改行
¥¥rキャリッジリターン
¥¥0??制御コード 8進数
¥¥x??制御コード 16進数

主な制御コード

8進数16進数対応する文字
011x09水平タブ ¥t
012x0a改行 ¥n
013x0b垂直タブ
014x0c改ページ
015x0d復帰(キャリッジリターン) ¥r
040x20半角スペース

定義済み関数

※¥s、¥S、¥f は PHP では使用できない?

定義済み文字クラス内容
¥d数字 [0-9]
¥D数字以外 [^0-9]
¥w英数字の単語 [_a-zA-Z0-9]
¥W英数字の単語以外 [^_a-zA-Z0-9]
¥s空白 [ ¥t¥n¥r]
¥S空白以外 [^ ¥t¥n¥r]
¥b単語境界 ¥w と ¥W の間
¥B単語境界以外


graph印字可能かつ表示可能な文字(スペースは印字可能だが表示可能ではない)
alnumアルファベットと(十進)数字

正規表現コード

A~Zの文字列と半角スペースのみを許可する場合

function check($value) {
	if (preg_match('/^[A-Z\x20]+$/', $value)) {
		return true;
    }
    return false;
}

全角スペースをエラーとする(UTF-8) ※動作確認してません

$result =check("て すと 	てすと\n aaa");
var_dump($result);

function check($value) {
	if (preg_match("/(\xE3\x80\x80)/", $value)) {
		echo "エラー"
    }
}

全角文字をエラーとする(UTF-8) ※動作確認してません

例1

※これは微妙な例ですよ。 ※文字コードについて。EUC-JP

$str = "\n aa-12a";
$str = mb_convert_encoding($str, "EUC-JP", "UTF-8");
$result = check2($str);

function check2($value) {

	if(preg_match("/[\x8E\xA1-\xFE][\xA1-\xFE]/", $value)) {
		echo "エラー";
	}
}

例2

if(!preg_match("/^[[:alnum:][:space:][:graph:]]+$/", $values)) {
	echo "エラー";
}

記号以外の文字かどうか

if (preg_match('/^([ぁ-煕|0-9a-zA-Z]+)$/', trim($value), $match)) {
    echo "記号以外です";
}


Comment

  • 1 -- 1? 2012-06-29 (金) 16:18:10
  • 1 -- 1? 2012-06-29 (金) 16:18:13
  • 1 -- -1'? 2012-06-29 (金) 16:18:14
    • 1' -- 1? 2012-06-29 (金) 16:18:15
  • 1 -- 1? 2012-06-29 (金) 16:18:15
  • 1 -- 1? 2012-06-29 (金) 16:18:16

  • 1 -- 1? 2012-06-29 (金) 16:18:12
    Counter: 19623, today: 5, yesterday: 0

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-24 (火) 14:56:22 (1519d)