概要
閲覧数:1791
投稿日:2011-01-29
更新日:2013-08-24
・正規表現の最短マッチを利用して、URL抽出
・任意の文字列の中から、開始語と終了語を指定して、文字列を抜き出す
・○○.*?△△
・ここでの「.*?」の意味は、○○で始まり、△△で終わる文字列の最短一致
<例>
任意の文字列/hoge/piyo/puyo/pipipi.html任意の文字列
<やりたいこと>
/hoge/で始まり、.htmlで終わる文字列を抜き出したい。
<正規表現>
/hoge/.*?\.html
. ピリオド
改行を除く任意の一文字を表す
* アスタリスク
直前の文字列やメタ文字の「0回以上の繰り返し」を表す
? クエスチョン
⇒直前の文字列やメタ文字の「0回もしくは1回の出現」を表す。
⇒最短一致記号。
※使われる場所によって、意味が異なる。
「.*」、「.+」
限りなく連続した文字を表す
「*?」
「0回以上のくり返し(最短一致)」
「*」
「0回以上のくり返し(最長一致)」
コード
$pattern="|/hoge/.*?\.html|"; $str=<<<eof 任意の文字列/hoge/piyo/puyo/pipipi.html任意の文字列 任意の文字列/hoge/puko/pu.html任意の文字列 任意の文字列/hoge/pa/pa.html任意の文字列 eof; preg_match_all($pattern,$str,$match); print_r($match);
結果
Array ( [0] => Array ( [0] => /hoge/piyo/puyo/pipipi.html [1] => /hoge/puko/pu.html [2] => /hoge/pa/pa.html ) )