[PHP-users 28890] Re: 正規表現による文字列の抽出

k.kikuchi apple @ s21.fxis.fujixerox.co.jp
2006年 3月 29日 (水) 15:23:17 JST


矢地さま

こんにちは、tomです。
アドバイスありがとうございます。

> この箇所だけに限定しますが、
> 「"&q="から始まって、"&以外の文字"に挟まれた文字列」
> と考えると、
> -----
> <?php
> $line =
'http://www.google.co.jp/search?hl=ja&q=%82%a0%82%a0%20%82%a0%82%a0%81%40%82%a0&lr=';
> $pattern = '/&q=([^&]*)/';
> if (preg_match($pattern, $line, $matches)) {
> print $matches[1];
> }
> ?>
> -----
> こんな感じでしょうか。

「?q=」から始まる場合もあるためパターンの「&」を外し、
「/q=([^&]*)/」のようにして見ました。

ある程度マッチするのですが件数が合いませんでした。

おそらくこの場合「&」ではさまれていないとマッチしないと思うのですが、
「"」の場合もある場合はどのようにしたら良いのでしょうか?
「/?q=|&q=([^\"|&]*)/」のようにしてみたのですが駄目でした。

以上



PHP-users メーリングリストの案内