• ベストアンサー

正規表現

例えば下のような文字列があって、{~} を正規表現で最初の一つをマッチさせたいのですが、{~} が複数あると最初の一つだけを取り出すことができません。 あああああ{aaaaa}いいいいい{bbbbb}ううううう パターンは /{.*}/ こんな感じでやっているのですが結果は、 {aaaaa}いいいいい{bbbbb} となってしまいます。 正規表現に詳しい方教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

{}の組は入れ子にはならないのですよね? であれば、 ・最短マッチが使えるのなら最短マッチを使う ・/{[^}]*}/ のようにする のいずれかになると思います。 ところで使っているのはなんですか? Perlなんかだと {} はメタ文字なんですが。

ttyp03
質問者

お礼

回答ありがとうございます。 バッチリ解決しました! ちなみに言語はPHPです。 {}はエスケープしなくても使えたのでそのまま書いてしまいました。 #ポイントは順番につけさせていただきました

その他の回答 (1)

noname#25358
noname#25358
回答No.2

 単純な方法でよければ、   /\{.*?\}/  これでいけるはずです。

ttyp03
質問者

お礼

回答ありがとうございます。 バッチリ解決しました! #ポイントは順番につけさせていただきました

関連するQ&A