代码之家  ›  专栏  ›  技术社区  ›  Hazem Alabiad

使用Regex捕获特定数量的事件

  •  -1
  • Hazem Alabiad  · 技术社区  · 6 年前

    我想抓住 N 以下模式的出现次数

    word <p=".."/>

    来自以下文本:

    already <p="RB"/> ablaze <p="JJ"/> in <p="IN"/> the <p="DT"/> most <p="RBS"/> <head>brilliant <p="JJ"/></head> scarlet <p="JJ"/> . <p="."/>

    我需要捕获 N 在标记的单词前后三个,例如: <head>brilliant <p="JJ"/></head> 所以前面有一句话: most <p="RBS"/> 然后是一个: scarlet <p="JJ"/> 哪里 N 实例之前和之后都是需要的,假设n=3,我尝试了这个模式,但没有成功。你能纠正我吗?

    (?<=/> )(.* <p=".*"/>){3}(?= <head>)
    

    我知道{#}用于捕获 N 但这对我不起作用。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Thm Lee    6 年前

    你想要这样的东西吗?

    (?<=/> )([^<>]* <p="[^"]*"/>){3}(?= <head>)
    

    Demo