デリミタ ■NGK [3667] *1台分8本セット* イリジウムIXプラグ * 日産 バネット/ラルゴ[コーチ] 1800cc KHGC22/KHGNC22 CA18ET(ターボ) 昭和61年5月~平成4年1月 エスペリア スーパーダウンサス キャスト アクティバ 2WD ターボ アクティバ LA250S H27/9~ スプリング、エスケープ、正規表現・・・。

どうも原田です。

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

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

 

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

preg_matchを使う機会に遭遇いたしまして、何で第一引数を「/」(スラッシユ)で囲ってんの?って思いまして、、、 受注生産品、お届けまでに1週間-10日【ラッキーシール対応】【APP/エー・ピー・ピー】SFIDA Brake Pads [スフィーダ ブレーキパッド] AP-8000 【フロント】1台分 [TOYOTA車] AP-8000-521F、

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

 

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);

このように、正規表現とか 【送料無料】 トヨタ純正 エアロワイパー フォワード 3連 FRR32/FRR33 H8.10~ 2本セット エアロブレード ワイパーブレード 純正交換 換えゴム U字フック 左右セット エアロ 日よけ 雨よけ 紫外線 ワイパーゴム フロント ガラス DIXCEL (ディクセル) リア ブレーキパッド X 1350565 アウディ A3 (8L) 8LAQAF 1.8 TURBO (QUATTRO) 99/10~01/04、デリミタとか、

【割引クーポン配布中】ENDLESS/エンドレス SSY ランドクルーザー プラド VZJ90W/95W H8.5~H14.9 リア 商品番号:EP257お得商品

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

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