Javascript 为什么';t此正则表达式为每个<;李>;?

Javascript 为什么';t此正则表达式为每个<;李>;?,javascript,regex,Javascript,Regex,我正在尝试使用以下正则表达式捕捉开始和结束li标记之间可能发生的任何事情: /<li[\w\s\!\@\#\$\%\^\&\*\-\_\+\=\~\`\.\,\:\;\"\/\–\?\{\}\[\]\(\)\<\>\ \|\'\\]+<\/li>/g /只需将+更改为+?,这样它就变得“懒惰”,无法匹配尽可能少的字符 <li[\w\s\!\@\#\$\%\^\&\*\-\_\+\=\~\`\.\,\:\;\"\/\–\?\{\}\[\]\(\

我正在尝试使用以下正则表达式捕捉开始和结束li标记之间可能发生的任何事情:

/<li[\w\s\!\@\#\$\%\^\&\*\-\_\+\=\~\`\.\,\:\;\"\/\–\?\{\}\[\]\(\)\<\>\ \|\'\\]+<\/li>/g

/只需将
+
更改为
+?
,这样它就变得“懒惰”,无法匹配尽可能少的字符

<li[\w\s\!\@\#\$\%\^\&\*\-\_\+\=\~\`\.\,\:\;\"\/\–\?\{\}\[\]\(\)\<\>\ \|\'\\]+?<\/li>
                                                                   added this ^ 
演示:

我会使用:

<li[^>]*>(.*?)<\/li>
]*>(**?)
其中:

  • [^>]*
    表示非
因评论而编辑:

()(*)()

将HTML与reg exp匹配是个坏主意。不过,在这种情况下没有其他选择。复杂的上下文,与问题无关,因此您无法用片段解析它并读取它?将html转换为标记,而无需访问libs、仅ES5等。数十万肮脏的输入,我终于到达了距离终点几英寸的地方,却发现这个正则表达式在嘲笑我。:)问题是reg exp无法处理
  • ,希望您没有嵌套列表。在某些情况下失败,我最初没有包括在内,对此表示抱歉:例如,这似乎在我的应用程序中也起作用,芯片掉到了Toto,刚好与他的评论时间不符。很难用正则表达式将“一”答案标记为正确答案。在我的应用程序中也是如此(我正在动态插入标记名)。对于以后尝试此操作的人,需要注意的一件事是添加/gs标志,如果您希望它跨多行工作,为什么在
    
    
    <li[^>]*>(.*?)<\/li>
    
    (<li.*?>)(.*)(<\/li>)