如何避免匹配太多?

问题描述 投票:-1回答:1

我有一个HTML字符串:

<li>bmasdas asmdasmdamsd admasmams asmdamsdma asmdamsdasm </li> 
<li> asdmams sdasdasmdamsdma asdmsasdaddamsdasm </li> 
<li> dsadasdasdas TARGET dasdasdsa</li>

我正在尝试使用此正则表达式捕获包含单词“TARGET”的<li>标记:

<li.*?TARGET.*?\/li>

虽然这确实捕获了我想要的线,但比赛从第一个<li>开始。我怎样才能捕获我想要的标签?

regex sqlite replace
1个回答
1
投票

您似乎不明白.匹配任何角色,包括<li中的角色。通过更改它,可以解析简单的HTML。

试试这个:<li[^<]*TARGET[^>]*\/li>

不同之处在于我使用了否定的char类,比如[^>],以确保它不会捕获标记。请注意,如果存在嵌套标记,则regex不是使用的工具。

© www.soinside.com 2019 - 2024. All rights reserved.