人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの正規表現について質問です。
()でくくられたものを抽出する正規表現として、
'/((.+?))/'というパターンを作成したのですが、
これだと1行に2つ()があった場合、後ろの方が選択されてしまいしまいます。
これを最初にマッチした方を選択させるにはどうしたら良いのでしょうか?
よろしくお願いします。

●質問者: taroemon
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP パターン マッチ 作成 抽出
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kn1967
●35ポイント

2つある場合というのを下記のように捉えて実験してみましたがいかがでしょう。

<?php
$s = 'abc(de)fg(hi)jk';
echo "$s\n";
preg_match("/\(.+?\)/",$s,$m);
print_r($m);
preg_match_all("/\(.+?\)/",$s,$m);
print_r($m);
?>

出力結果

abc(de)fg(hi)jk
Array
(
 [0] => (de)
)
Array
(
 [0] => Array
 (
 [0] => (de)
 [1] => (hi)
 )

)

PHP: preg_match - Manual

◎質問者からの返答

ご回答ありがとうございます。

質問文に書かれてないところで勘違いがあったようです。

この件はあらためて質問し直します。

ぜひまた教えてください。


2 ● b-wind
●35ポイント
'/^[^(]*((.+?))/'

PHP: mb_ereg - Manual

◎質問者からの返答

ご回答ありがとうございます。

質問文に書かれてないところで勘違いがあったようです。

この件はあらためて質問し直します。

ぜひまた教えてください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ