2016-04-26 70 views
-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>开始。我怎样才能捕获我想要的标签?

+0

对不起,我的坏understanding..but你可以多一点精致的 – rock321987

+0

**皮斯复制此:**

  • bmasdas asmdasmdamsd admasmams asmdamsdma asmdamsdasm
  • asdmams sdasdasmdamsdma asdmsasdaddamsdasm
  • dsadasdasdas TARGET dasdasdsa
  • **和使用正则表达式我,你会看到正则表达式匹配整个文本,但我只想匹配最后一个字符串(行)** – mssqlw

    +0

    请重新说明你的问题:“t工作正常,当你考虑正则表达式停止与最后'<\li>,不会继续,但是我试图找到一种不会去的方式,并在目标前用<'li>读取所有其他行。“ – sweaver2112

    回答

    1

    您好像不了解.与任何字符匹配,包括<li中的字符。通过改变这一点,可以解析简单的HTML。

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

    不同的是,我用否定字符类,像[^>],以确保它不会赶上标签。请注意,如果存在嵌套标记,则不使用正则表达式。

    +0

    杰作!非常感谢你。 – mssqlw