0

我试图编写在<ul class=\"theatre\">和之间提取值的正则表达式</ul>

我写了那个正则表达式:

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

我的问题是,如何修改此正则表达式以使结果以第一次遇到的</ul>标签结尾?这是我的例子:

http://regexr.com?33j92

它应该在之前结束<div class=

我知道 regex 不应该用于 html (我之前在 SO 上已经阅读过)。我只需要这样做,以了解为什么它没有首先结束</ul>以及如何解决它。

4

3 回答 3

1

你必须使用懒惰?修饰符并使用 dot-all 标志来匹配行尾的点(匹配任何字符)。不应设置“全局”(多匹配)标志

检查这个正则表达式,只检查你的网络正则表达式测试中的全点复选框:

<ul\s.*?</ul>
于 2013-01-29T23:39:39.147 回答
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 回答
0

尝试:

<ul.*?>(.*?)</ul>
于 2013-01-29T23:20:42.773 回答