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


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

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

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/08/26 22:11:20
  • 終了:2014/08/26 23:57:21

ベストアンサー

id:a-kuma3 No.2

a-kuma3回答回数4605ベストアンサー獲得回数19432014/08/26 23:04:15

ポイント80pt

何を使うか(言語とか、ツールとか)によって、やり方が変わったり、そもそもできない、という可能性もあります。
ここでは、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
id:worldtravel

ありがとうございます。
私が間違えた質問をしてしまいました。
ただ、これはこれで勉強になりました。
ありがとうございました。

2014/08/26 23:56:10

その他の回答(1件)

id:tezcello No.1

tezcello回答回数460ベストアンサー獲得回数692014/08/26 22:53:52

ポイント20pt
<div>.*?</div>

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

id:worldtravel

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

2014/08/26 23:56:49
id:a-kuma3 No.2

a-kuma3回答回数4605ベストアンサー獲得回数19432014/08/26 23:04:15ここでベストアンサー

ポイント80pt

何を使うか(言語とか、ツールとか)によって、やり方が変わったり、そもそもできない、という可能性もあります。
ここでは、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
id:worldtravel

ありがとうございます。
私が間違えた質問をしてしまいました。
ただ、これはこれで勉強になりました。
ありがとうございました。

2014/08/26 23:56:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません