Top > PHPあれこれ > 正規表現パターン

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
<?php //全てASCII文字か?
//PHPの正規表現で、渡された文字列が全てASCII文字かチェックします。 
//PHP 正規表現 ASCII UTF8
$str = " abcdefghijklmnopqrstuvwxyz!#$%&'()[]@";
if (preg_match("/^[\x20-\x7E]+$/", $str)) {
    echo "すべてASCIIである"."<br>\n";
} else {
    echo "ASCIIでない文字がある"."<br>\n";
}
//↓
//"すべてASCIIである" ?>
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
<?php //全て半角英数字か?
//PHPの正規表現で、渡された文字列が全て半角英数字かチェックします。
//PHP 正規表現 半角英数字
$str = "abcdefghijklmnopqrstuvwxyz0123456789";
if (preg_match("/^[0-9A-Za-z]+$/", $str)) {
    echo "すべて半角英数字である"."<br>\n";
} else {
    echo "半角英数字でない文字がある"."<br>\n";
}
//↓
//"すべて半角英数字である" ?>
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
<?php //全て全角ひらがなか?
//PHPの正規表現で、渡された文字列が全て全角ひらがなかチェックします。(UTF-8向け) 
//PHP 正規表現 全角ひらがな UTF8
$str = "あいうえおわいうえおん";
if (preg_match("/^(?:\xE3\x81[\x81-\xBF]|\xE3\x82[\x80-\x93])+$/", $str)) {
    echo "すべて全角ひらがなである"."<br>\n";
} else {
    echo "全角ひらがなでない文字がある"."<br>\n";
}
//↓
//"すべて全角ひらがなである" ?>
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
<?php //全て全角カタカナか?
//PHPの正規表現で、渡された文字列が全て全角カタカナかチェックします。(UTF-8向け) 
//PHP 正規表現 全角カタカナ UTF8
$str = "アイウエオワイウエオン";
if (preg_match("/^(?:\xE3\x82[\xA1-\xBF]|\xE3\x83[\x80-\xB6])+$/", $str)) {
    echo "すべて全角カタカナである"."<br>\n";
} else {
    echo "全角カタカナでない文字がある"."<br>\n";
}
//↓
//"すべて全角カタカナである" ?>
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
<?php //全て半角カタカナか?
//PHPの正規表現で、渡された文字列が全て半角カタカナかチェックします。(UTF-8向け) 
//PHP 正規表現 半角カタカナ UTF8
$str = "。アイウエオカキクケコサシスセソタチツテトナニヌネノハイフヘホマミムメモラリルレロヤユヨワン゚";
if (preg_match("/^(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])+$/", $str)) {
    echo "すべて半角カタカナである"."<br>\n";
} else {
    echo "すべて半角カタカナではない"."<br>\n";
}
//↓
//"すべて半角カタカナである" ?>
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
<?php //全て全角ASCIIか?
//PHPの正規表現で、渡された文字列が全て全角ASCIIかチェックします。(UTF-8向け) 
//PHP 正規表現 全角ASCII UTF8
$str = "ABCDEFGHIJK1234567890!#$";
if (preg_match("/^(?:\xEF\xBC[\x81-\xBF]|\xEF\xBD[\x80-\xA0])+$/", $str)) {
    echo "すべて全角ASCIIである"."<br>\n";
} else {
    echo "全角ASCIIでない文字がある"."<br>\n";
}
//↓
//"すべて全角ASCIIである" ?>
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
<?php //全て全角文字か?
//PHPの正規表現で、渡された文字列が全て全角文字かチェックします。(UTF-8向け) 
//PHP 正規表現 全角文字 UTF8
$str = "ABCDEFXYZあいうえおカキクケコ@!+*_";
if (!preg_match("/(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])|[\x20-\x7E]/", $str)) {
    echo "すべて全角である"."<br>\n";
} else {
    echo "全角でない文字がある"."<br>\n";
}
//↓
//"すべて全角である" ?>
  0
  1
  2
  3
  4
  5
<?php $str = " abcdefghijklmnopqrstuvwxyz!#$%&'()[]@";
if (preg_match("/[^\x20-\x7E]/", $str)) {
    echo "文字列にASCII文字でない文字が存在する"."<br>\n";
} else {
    echo "文字列にASCII文字でない文字が存在しない"."<br>\n";
} ?>
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
<?php //渡された文字列に非半角英字があるか?
//PHPの正規表現を使用して、渡された文字列に非半角英字があるかチェックします。(UTF-8向け) 
//PHP 正規表現 非半角英字 UTF8
$str = "abcdefghijklmnopqrstuvwxyz";
if (preg_match("/[^A-Za-z]/", $str)) {
    echo "文字列に半角英字でない文字が存在する"."<br>\n";
} else {
    echo "文字列に半角英字でない文字が存在しない"."<br>\n";
}
//↓
//"文字列に半角英字でない文字が存在しない" ?>
<?php  ?>
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
<?php //文字列に半角カタカナが存在するか?
//PHPの正規表現を使用して、渡された文字列に半角カタカナがあるかチェックします。(UTF-8向け) 
//PHP 正規表現 半角カタカナ UTF8
$str = "aaaaアあああああ";
if (preg_match("/(?:\xEF\xBD[\xA1-\xBF]|\xEF\xBE[\x80-\x9F])/", $str)) {
    echo "文字列に半角カタカナが存在する"."<br>\n";
} else {
    echo "文字列に半角カタカナが存在しない"."<br>\n";
}
//↓
//"文字列に半角カタカナが存在する" ?>
<?php  ?>
<?php  ?>
<?php  ?>
  0
  1
  2
  3
  4
  5
  6
  7
  8
<?php $buf = "12345678901234567";
$res = preg_replace("/(\d)(?=(\d{3})+(?!\d))/", '\1,', $buf);
print($res);
 
//↓
//12,345,678,901,234,567
//になります。
//参照:
//http://mono.kmc.gr.jp/~oxy/w/?Regexp%20Lookahead ?>
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
<?php //参考サイト:http://www.din.or.jp/~ohzaki/perl.htm#CSV2Values
//処理対象のCSV定義
//   1. 基本的にコンマで区切った部分がスペースを含めて値である.
//   2. 値にコンマやダブルクウォートが含まれる場合は, 値全体をダブルクウォートで囲む.
//   3. 値に含まれるダブルクウォートは "" となる. 
//※値の中に改行コードがあるデータは対象外です。
$str = '47201,"90101","9,010154","オキナワケン","ナハシ","アカミネ","沖縄県","那""覇市","赤嶺",0';
 
//処理を容易にするために末尾にカンマを付与します。
$str = preg_replace('/(?:\x0D\x0A|[\x0D\x0A])?$/',',', $str);
 
//パース
preg_match_all('/("[^"]*(?:""[^"]*)*"|[^,]*),/', $str, $match);
 
//"値"→値にトリミング
$result = preg_replace('/^"(.*)"$/','$1', $match[1]);
//$result = array_map(create_function('$ele', 'return trim($ele,"\"");'), $match[1]);
 
//値中の""を"に変換
$result = str_replace('""', '"', $result);
 
print_r($result);
//↓
//Array
//(
//    [0] => 47201
//    [1] => 90101
//    [2] => 9,010154
//    [3] => オキナワケン
//    [4] => ナハシ
//    [5] => アカミネ
//    [6] => 沖縄県
//    [7] => 那"覇市
//    [8] => 赤嶺
//    [9] => 0
//) ?>
  0
  1
  2
  3
  4
  5
<?php //H2O → H<sub>2</sub>O
//というように数字部分を下付き文字に変換します。
$formula = "H2O";
$formula = preg_replace("/([^0-9])([0-9]{1,})/", '$1<sub>$2</sub>', $formula);
echo $formula;
//→"H<sub>2</sub>O" ?>

リロード   新規 編集 凍結解除 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2012-08-08 (水) 23:25:22 (2925d)