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

正则表达式来匹配在python中不以特定charector开头的单词,该表达式使用负lookahead断言[duplicate]

  •  -2
  • Alok  · 技术社区  · 6 年前

    在字符串中

    s = 'Makeupby Antonia #makeup #makeupartist #makeupdolls #abhcosmetics'  
    

    我只想匹配不以开头的单词 # 是的。意思是我只想选择 Makeupby Antonia
    我试着用否定的前瞻断言

    re.findall(r'\b(?![#])[a-zA-Z]+',s)  
    
    ['Makeupby',
     'Antonia',
     'makeup',
     'makeupartist',
     'makeupdolls',
     'abhcosmetics']
    

    但这和所有的词都是一致的。我错在哪里?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Brad Solomon    6 年前

    (?!) 是负向前看的语法。你想要一个消极的旁观者。

    尝试 \b(?<!#)[a-zA-Z]+

    Demo