• ベストアンサー

正規表現で

正規表現で「楽.+ね」と書いて 「楽しいかもね、そうかもね。」という文の 前半の「楽しいかもね」とマッチングしたいのですが、 結果は、「楽しいかもね、そうかもね。」とのマッチングになってしまいます。 後半の「、そうかもね。」があるかどうかわからない文章で、 前半の「楽しいかもね」とマッチングさせる正規表現はどう書けば良いのでしょうか? 宜しくお願いします。

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

  • ベストアンサー
noname#39970
noname#39970
回答No.1

楽[^、。]+ね どう?

pokapoka1980
質問者

お礼

ばっちりです。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • puchner
  • ベストアンサー率23% (16/69)
回答No.4

最短一致の「?」を使うのがベストだと思います。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

最小(最短)一致にしないと、後ろに「ね」があったり、前に「楽」があると、最大(最長)とマッチするんじゃなかったっけ・・・ 楽(.+?)ね では・・・

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

楽[^ね]+ね とかよく使いますよね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 正規表現でのマッチング

    連想配列%hushがあります。 %hushの中のキーが「a何とか」、つまり a0、a1、a2、a3、・・・ の値だけを、配列@arrayに格納します。 つまり  $array[0]=$hush{'a0'}  $array[1]=$hush{'a1'}  $array[2]=$hush{'a2'}  $array[3]=$hush{'a3'} ・・・ といった感じにしたいのですが、 「a何とか」は正規表現を用いて  a.* と表現できます。 ってここまでは手元の本で分かったのですが、マッチングのif文をどう書けばいいんだよ!  if($key==a.*) と書いてもうまくマッチしてくれないんで、a.*を""で括ってみたり()で括ってみたりするものの相手にされず・・・ 手元の本は「こういう場合正規表現ではこう書けば良くて、これをマッチングさせれば良い」みたいなことを書いていますが、マッチングのさせ方は書いていません。 プログラムの文法書を読むと、条件分岐の仕方は書いていますが、==演算子の右側が正規表現だった場合の使い方は書いていません。 あるいは、正規表現の場合のマッチングはif文などを用いないのでしょうか? だったら正規表現の本にマッチングの文法を書いていますよね!? なんだかんだでマッチングがうまくいかないのです。 この場合、どう記述すればいいのでしょうか? お手数をお掛けします。

  • 正規表現について

    あるファイルを読み込んで中に変数($xxx)が入っていたら 正規表現にて$xxxの値に変換する事は出来ますでしょうか? 試行錯誤しているのですが、上手くいかず困っています。 変数を正規表現にてマッチングさせるのも上手くいかないです。 ご教授お願いいたします。

    • 締切済み
    • PHP
  • http://とhttps://のどちらでもマッチングできる正規表現

    http://とhttps://のどちらでもマッチングできる正規表現の書き方が分かりません。aタグの中のhref="のあとのURL部分にhttpでもhttpsのどちらでもOKのマッチングをかけたいです。 具体的にはhttp://www.aaa.co.jpでもhttps://www.aaa.co.jpのどちらでもpreg_match_allでマッチングをかけたいです。 $count=preg_match_all("正規表現",$URL,$maches); という感じでhttpかhttpsのURLに引っ掛けたいです。 教えてください

    • ベストアンサー
    • PHP
  • 正規表現で特定の記号を抜かしてヒットさせるには

    javaで正規表現を使用してプログラムしています。 ある条件を入力させて、"."や","の記号を抜かして、 ヒットさせるしたいと思っています。 例えば "あいう"で検索かけた場合、 "あ.い,う"という単語をヒットさせて ヒットした結果を置換したいのですが、できますでしょうか。 正規表現で無くてもよいのですが、現在、多少複雑な正規表現でマッチングしている処理があり、それに簡単に付け加えれば、"."や","をヒットするように出来ないかと思っています。 よろしくお願いします。

    • ベストアンサー
    • Java
  • |。ってなんですか? 正規表現

    正規表現の学習中です。読んでいる本の中に次の式がありました。  (?<=^|。)[^。]+。 日本語の文章の中から一文を抽出するための正規表現です。  。以外の文字がダーッと連なった後に。が来る文字列 とのことです。  [^。]は。以外の文字  +はそれが1個以上ある ですから  [^。]+ は  。以外の文字が1個以上ある という意味です。 その後に。が付きますから、  [^。]+。 だけで  。以外の文字がダーッと連なった後に。が来る文字列 ということになります。 では  (?<=^|。) の意味は何でしょう。  (?<=なんたら) は後方参照を意味しますから、 ^|。 のすぐ後に [^。]+ が続くと言いたいのでしょうか。 だとすると  ^|。 が問題です。  ^もしくは。 という意味なら、^は正規表現で記号として使われている文字ですから、  \^|。 と表現されそうなものです。 それに、。は文末でしか利用されない文字ですから、これに注目して検索を行うというのは理解できますが、^は日本語でなんら特徴を持つ文字ではありません。  ^もしくは。 という理解は間違いでしょう。 それでは^を記号として考えるとして、その前後を[]で囲んでいないから、この^は文字列の先頭を表すのでしょうか。そうすると件の正規表現は  先頭の|。のすぐ後から。以外の文字が連なった後に。が来る文字列 という意味になります。日本語の一文を抽出する正規表現という解説にかなり近づいてはいます。 しかし  |。 とは一体何? |はorを意味する記号ですが、  何とか or 。 という意味でしょうか。 でも「何とか」は「何とか」なりに何か文字表現がなされていても良さそうですし、それに  先頭の「何とか」または。のすぐ後から・・・ という解釈は意味不明。  |。 はどのように解釈すべきなのでしょうか。 お手数をお掛けします。

    • ベストアンサー
    • Perl
  • phpの正規表現

    phpの正規表現で困っています。 下記のような文で括弧で囲まれた文字列だけを消したいのですが、 (ABC)あいうえお(DEF) /(.*)/で置換すると文章が全部消えてしまいます。 「あいうえお」だけを残したいのですがうまくいきません。何方か教えてください。お願いします!

    • ベストアンサー
    • PHP
  • 正規表現について

    アメブロから独自ブログへ引越しを行うことになったのですが、 ペタしてね というリンク画像を毎ページに張り付けており、この画像リンクを一括で削除したいと思っています。 HTMLタグのパラメータが微妙にばらついており、正規表現の利用が必要かなと思っています。 専用のプラグインをインストールし、正規表現を利用して削除できることが分かったのですが、 正規表現の方法を数時間勉強してみましたが、結局どうすればいいのかわかりません・・・ 削除する画像リンクは以下のようなものです。 <a href="http://.........................."><img height="100" alt="ペタしてね" src="http://stat.ameba.jp/blog/ucs/img/decoPeta/pc/decoPeta_18.gif" width="100" /></a> width や hight がページによって微妙に違うようです。 どちらさまか、上記のようなタグをマッチングさせる正規表現を教えていただけませんでしょうか。

    • ベストアンサー
    • PHP
  • 正規表現で

    正規表現で、以下の文章で、Yahoo!JAPANの表現方法は何でしょうか? 説明をしていただけると助かります。 初心者です。よろしくお願いします。 これが新しい - 来年の - 『Yahoo!JAPAN』

  • 正規表現で完全一致したキーワードのみ置換したい

    例えば、 SLEEP AND ASLEEPの文字列から SLEEPを検索し、.zZに変換したいと思います。 しかし、ASLEEPにはHITして欲しくありません。 正規表現でSLEEPだけマッチングさせるには、 どのような式を与えたら良いでしょうか? そのまま置換に使用したいので、 取得結果としては、オフセット(0,5)が取得できて欲しいです。 正規表現には、POSIXのregexを使用します。

  • 正規表現について教えてください。

    正規表現について教えてください。 JavaScriptでプログラミングを行っています。 その中で文字列に対しゼロサプレスを行いたいと思い 調べた結果、正規表現を使用する以下のコードで 実現可能なことが分かりました。 val.replace(/^0+([0-9]+.*)/, "$1") コードを記述し実行すると確かに可能なのですが 正規表現を調べてみても何故これでゼロサプレスが可能なのか よく理解できませんでした。 申し訳ありませんが初心者でも理解できるように説明して頂けないでしょうか。 宜しくお願いします。