デリミタ ブリヂストン NEXTRY ネクストリー サマータイヤ 215/45R17 WEDS ウェッズ RIZLEY ライツレー XS ホイールセット 4本 17インチ 17 X 7 +50 5穴 100 KYB(カヤバ) New SR SPECIAL フロント[L]1本 マークII(JZX90) グランデ、 グランデG、 ツアラーS/ツアラーV NSF9048、エスケープ、正規表現・・・。

どうも原田です。

Smartyを触っていたので、今回はSmartyネタというか、PHPネタです!

SmartyでPHP関数使えますよね。(最近知ったw)

 

PHPもSmartyも世の中も何もかもわからない私にとって、

preg_matchを使う機会に遭遇いたしまして、何で第一引数を「/」(スラッシユ)で囲ってんの?って思いまして、、、 ダイハツ ムーヴ LA100 LA150S フロアマット(前部・後部座席分)【ハーベスト2色】厚い生地 ムーブ◆カーマット 車 フロアカーペット、

さらに、この中でよく意味のわからない記号を使っておる!!→正規表現

 

phpmanualによりますと、、、

preg_match($pattern,  $input_word);

$pattern=’/^abc/’; みたいなんがきます。

 

ポイント

$pattern=’/(探したい言葉)/‘;

「^」は先頭、ちなみに末尾は「$」、「*」は直前の文字が1個以上連続。他には「/」や「.」があります。【正規表現】

 

囲ってる「/」をデリミタというそうですね。

このデリミタの中に、探したいワードを書くわけですが 、もし「/」を探したい時どうしますか?

→「\」(エスケープ)ですね!

こんな感じ preg_match(‘/ \/ /’, $input_word);

何を探したいのかがよくわからず、見にくいですよね!!!

 

こんな時はデリミタの変更をすると便利です!

使えるデリミタは「#」や「+」、「%」などいっぱいあるんです。

なので、さっき見にくかったやつも、、

preg_match(‘# \/ #’, $input_word);

うーん ・・・見にくいですが、ごちゃつきが減りましたよね!

こんな感じで読みやすくするのも、大切だなあと思いましたとさ。ちゃんちゃん。

 

 

ちなみに、わたしは正規表現がよくわからず、

どうエスケープしたらいいのかよくわからない!

そんな時はー・・・・。

preg_quote()!!

正規表現をクオート(エスケープ)してくれる関数なのです!

これ超便利って思う。

preg_quote (‘エスケープしたいもの’, ‘デリミタ’);

使うとこんな、感じ。

 

<?php

$str = ‘This /is $100.’

$res = preg_quote($str, ‘/’);

echo $res   //    This \/is \$100\.を返します

 

よって、preg_matchでパターンとして使う時は、preg_quoteから得た結果をそのままつっこんで、

preg_match(‘/ This \/is \$100\. /’,  $input_word);

このように、正規表現とか 【レガシィ/アウトバック サブコン】 BS9 14.10- MINICON PRO シエクル/ジェイロード (MPA02 【送料無料】ZOOM(ズーム) ダウンフォース プロボックス NCP50V 2NZ-FE H14/7~ 2WD 1.3L ZOOM [自動車 サスペンション ダウンサス]、デリミタとか、

、エスケープどこでしたらええんのん

っって時使えます!!!!