- 締切済み
正規表現
次の文字列の<div>タグで囲まれた部分を取得したいです。 <div>タグは一番最初のもの ------------------------------------------------------------------ <div>ここは何文字かわからない</div> このうしろにも</div>が何回かきます。 ------------------------------------------------------------------ ですので、最初に一致した</div>で終わりにしたいです。 処理時間もその後のテキストを見なくてもよくなるでしょうし。 @"<div>{.}\A(</div>))" こうした所マッチしすぎてエラーになってしまいました。 よろしくお願いしまうs。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
いわゆる「PCRE」なら \A も使えます>#1. さておき, ・「マッチしすぎてエラーになってしまいました」とか「マッチするものが多すぎてエラーになってしまいます」って, どういうことなんでしょうか? このマッチさせる部分, 実際にはプログラムとしてどのように書いているんでしょうか. ・この文章だと「どこを取得したいのか」が分からない. 「最初の <div> から最初の </div> まで」と「最初に現れる </div> とそれに対応する <div> の間」とでは意味が異なりますよね. で, この文章ではどっちなのか判断できない. あと, C# なら「その他(プログラム)」か「C・C++」が適当なところでしょう. いずれにしても, 「C# である」ことは明記すべきですが.
\A が使える正規表現を私は知らないのですが、文法が 間違っていませんか? 使用している言語(もしくはテキストエディタ)を明示して もらえないと、回答が難しいのですが、単純に考えれば、 以下で行けると思います。 <div>.*?</div> ※データに改行を含んでいる場合、使用する言語(もしくは テキストエディタ)によってはうまくいきません。
お礼
ちなみにJavaカテゴリに質問した事をご容赦下さい。 C#カテゴリが無かったので一番近そうなカテゴリを選びました。
補足
ご回答ありがとうございます。 VS2012 の C# です。 それは試してみたのですがマッチするものが多すぎて エラーになってしまいます・・・ おしりの</div>を【最初にマッチした】のような 特殊文字があればいいのですが・・・ どうしたものやら