代码之家  ›  专栏  ›  技术社区  ›  ha9u63a7

Java regex-负lookahead返回匹配,即使匹配不存在

  •  -1
  • ha9u63a7  · 技术社区  · 5 年前

    <marker name="my.marker" cachedBy="all" affectedBy="typ1,type2">
    <child1>bla</child1>
    </marker>
    

    我想做的是查找以识别 > 使用以下条件。

    1. 匹配 > 如果电话线没有 affectedBy= 属性可用,例如。 affectedBy="type1" . 因为我想把它附加到那一行。所以我不想被复制。 affectedBy="type1,type2", affectedBy="type1,type2"

    2. 只匹配 > -也就是说,不是全球性的比赛。

    我尝试了以下方法:

    <(?!=(.*sharedBy=".*"))>

    但它返回一个匹配的 > 即使在 是存在的。我确信这可能是我的前瞻性逻辑中的错误,但无法找出原因。任何帮助都将不胜感激。

    1 回复  |  直到 5 年前
        1
  •  0
  •   ha9u63a7    5 年前

    1) 如果有匹配的 affectedBy=.*> 别理它。

    2) 否则,查找第一个组匹配 (?=<marker name="my.marker".*)?> > 具有 affectedBy="type1,type2>"