• 締切済み

正規表現

次の文字列の<div>タグで囲まれた部分を取得したいです。 <div>タグは一番最初のもの ------------------------------------------------------------------ <div>ここは何文字かわからない</div> このうしろにも</div>が何回かきます。 ------------------------------------------------------------------ ですので、最初に一致した</div>で終わりにしたいです。 処理時間もその後のテキストを見なくてもよくなるでしょうし。 @"<div>{.}\A(</div>))" こうした所マッチしすぎてエラーになってしまいました。 よろしくお願いしまうs。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

いわゆる「PCRE」なら \A も使えます>#1. さておき, ・「マッチしすぎてエラーになってしまいました」とか「マッチするものが多すぎてエラーになってしまいます」って, どういうことなんでしょうか? このマッチさせる部分, 実際にはプログラムとしてどのように書いているんでしょうか. ・この文章だと「どこを取得したいのか」が分からない. 「最初の <div> から最初の </div> まで」と「最初に現れる </div> とそれに対応する <div> の間」とでは意味が異なりますよね. で, この文章ではどっちなのか判断できない. あと, C# なら「その他(プログラム)」か「C・C++」が適当なところでしょう. いずれにしても, 「C# である」ことは明記すべきですが.

noname#212058
noname#212058
回答No.1

\A が使える正規表現を私は知らないのですが、文法が 間違っていませんか? 使用している言語(もしくはテキストエディタ)を明示して もらえないと、回答が難しいのですが、単純に考えれば、 以下で行けると思います。 <div>.*?</div> ※データに改行を含んでいる場合、使用する言語(もしくは  テキストエディタ)によってはうまくいきません。

timespace
質問者

お礼

ちなみにJavaカテゴリに質問した事をご容赦下さい。 C#カテゴリが無かったので一番近そうなカテゴリを選びました。

timespace
質問者

補足

ご回答ありがとうございます。 VS2012 の C# です。 それは試してみたのですがマッチするものが多すぎて エラーになってしまいます・・・ おしりの</div>を【最初にマッチした】のような 特殊文字があればいいのですが・・・ どうしたものやら

関連するQ&A