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

正規表現に付いて教えて下さい。

<div>〜</div> の </div> 以外はどうやって書けば良いでしょうか。

<div>[^<?/div>]*?<?/div> ???

よろしくお願いします。

●質問者: worldtravel
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tezcello
●20ポイント
<div>.*?</div>

でいいのでは?
状況に依り...ですが . (ドット)が改行文字を含むように修飾子を指定した方がよいかもしれません。


worldtravelさんのコメント
ありがとうございました。 この質問に対しては、そう思いますよね。 申し訳ありません。 間違えた質問をしてしまいました。

2 ● a-kuma3
●80ポイント ベストアンサー

何を使うか(言語とか、ツールとか)によって、やり方が変わったり、そもそもできない、という可能性もあります。
ここでは、javascript の場合。


ひとつは、肯定的先読みを使う方法。

var s = "a-kuma3<div>q.hatena.ne.jp</div>q1409058680";

// 肯定的先読みを使う
var re = /<div>.*(?=<\/div>)/;
var result = re.exec(s);
if (result) {
 console.log(result[0]); // 正規表現全体にマッチする文字列
}

出力は、こうなります。

<div>q.hatena.ne.jp

正規表現全体が、<div> から </div> の手前までにマッチします。


もうひとつのやり方は、グルーピングを使う方法。
正規表現の一部がマッチするので、それをグループとして取り出します。

var s = "a-kuma3<div>q.hatena.ne.jp</div>q1409058680";

// グルーピングを使う
var re = /(<div>.*)<\/div>/;
var result = re.exec(s);
if (result) {
 console.log(result[0]); // 正規表現全体にマッチする文字列
 console.log(result[1]); // 一番目のグループにマッチする文字列
}

出力は、こうなります。

<div>q.hatena.ne.jp</div>
<div>q.hatena.ne.jp

worldtravelさんのコメント
ありがとうございます。 私が間違えた質問をしてしまいました。 ただ、これはこれで勉強になりました。 ありがとうございました。
関連質問

●質問をもっと探す●



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