0

<ul class=\"theatre\">との間の値を抽出する正規表現を書いてみました</ul>

私はその正規表現を書きました:

<ul class=\"theatre\">(\s)*[<>/ =":\._,)(a-zA-Z0-9(\s)ĄĘŚĆŻŹŁÓĆŃąęśćżźłóćń\-]+</ul>

私の質問は、この正規表現を変更して、最初に検出された</ul>タグで結果が終了するようにする方法です。これが私の例です:

http://regexr.com?33j92

それは前に終了する必要があります<div class=

私は正規表現をhtmlに使用すべきではないことを知っています(私は以前にSOでそれについて読んだことがあります)。なぜそれが最初に終わらないのか、</ul>そしてどうすればそれを修正できるのかを理解するために、私はそれをしなければなりません。

4

3 に答える 3

1

あなたは怠惰なものを使わなければなりませんか?修飾子を付け、dot-allフラグを使用して、行末全体でドットを一致させます(任意の文字と一致させます)。「グローバル」(マルチマッチ)フラグは設定しないでください

この正規表現をチェックし、Web正規表現テストのすべてのドットチェックボックスのみをチェックします。

<ul\s.*?</ul>
于 2013-01-29T23:39:39.147 に答える
0

試す:

<ul.*?>(.*?)</ul>
于 2013-01-29T23:20:42.773 に答える
0

あなたが使うことができます

 <ul class="theatre">([\s\S]+?)<\/ul>

たとえば、Javascriptでは、次のことができます

var str = '<ul class="theatre"> bananas </ul>',
    m = str.match( /<ul class="theatre">([\s\S]+?)<\/ul>/ );

if ( m ) {
    console.log( m[1] );    // " bananas "
}    
于 2013-01-29T23:29:25.993 に答える