PHPの正規表現で、複数の文字列を対象にした構文が作れません。


ソースは
http://1811way.com/work008/20120730-01.txt
です。
http://q.hatena.ne.jp/1343485953
に2行目のURL、8行目の文字列を変えただけです。

上記のソースの
$keyword = '/関塚/';
を、「関塚」「モロッコ」「なでしこ」
の3つあった場合の
ソースを修正していただけると助かります。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/07/30 17:14:32
  • 終了:2012/07/30 17:24:34

ベストアンサー

id:Cherenkov No.1

Cherenkov回答回数1502ベストアンサー獲得回数4922012/07/30 17:17:51

ポイント300pt
$keyword = '/関塚|モロッコ|なでしこ/';


このあたりを穴が開くほど眺めるといいですよ。

id:kohhi

瞬時にできてしまいました。
ありがとうございました。

2012/07/30 17:25:41

その他の回答(2件)

id:Cherenkov No.1

Cherenkov回答回数1502ベストアンサー獲得回数4922012/07/30 17:17:51ここでベストアンサー

ポイント300pt
$keyword = '/関塚|モロッコ|なでしこ/';


このあたりを穴が開くほど眺めるといいですよ。

id:kohhi

瞬時にできてしまいました。
ありがとうございました。

2012/07/30 17:25:41
id:y-kawaz No.2

y-kawaz回答回数1420ベストアンサー獲得回数2252012/07/30 17:20:53

以下のようにすればパイプで区切ったキーワードのどれかがあれば、という条件になります。

$keyword = '/(関塚|モロッコ|なでしこ)/';

id:kohhi

お返事いただいてすいません。
先ほど閉め切ってしまいました。

2012/07/30 17:26:24
id:y-kawaz

「3つあった場合」っていうのが「3つともあった場合」だとしたら正規表現では無理があるのでpreg_matchを3回回す形になります。

2012/07/30 17:26:28
id:taknt No.3

きゃづみぃ回答回数13537ベストアンサー獲得回数11982012/07/30 17:21:12

http://www.rubylife.jp/regexp/select/index1.html

いくつかの候補となる文字列を列挙し、そのいずれか一致する場合にマッチするパターンの記述方法を確認します。書式は次の通りです。

/候補1|候補2|../



なので
$keyword = '/関塚/';

$keyword = '/関塚|モロッコ|なでしこ/';
にしたらいいでしょう。

id:kohhi

お返事いただいてすいません。
先ほど閉め切ってしまいました。

2012/07/30 17:26:35

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません