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

正则表达式_(?=[.]*)

  •  0
  • user310291  · 技术社区  · 3 年前

    我有这个正则表达式

    ___(?=[.]*)
    

    https://regex101.com/r/Ot6Bua/1

    哪个和这个匹配

    enter image description here

    虽然我想匹配所有的,但如果第一个有4个,我想匹配之前的3个(

    我找不到lookaround正则表达式的用法

    1 回复  |  直到 3 年前
        1
  •  5
  •   The fourth bird    3 年前

    在模式中 ___(?=[.]*) 这部分 (?=[.]*) 总是正确的,因为它在右边声明可选点。因此,当正则表达式从左向右移动时,它将匹配前3个下划线

    你可以断言 ( ) , 改为右转:

    ___(?=[(),])
    

    Regex demo

    另一个匹配最后3个下划线的选项是使用一个否定的前瞻,即第一个匹配 ___ 然后就断言不是 _ 向右

    ___(?!_)
    

    Regex demo