代码之家  ›  专栏  ›  技术社区  ›  John Snow

Regex替换除match之外的所有内容

  •  0
  • John Snow  · 技术社区  · 6 年前

    我只想保留以“@”开头并以字母或点继续的单词。基本上我做了相反的事情,我可以匹配这样的词,但除了这场比赛之外,我不知道如何匹配所有的东西。所以基本上只保留那些以@开头的。到目前为止,我有这样一种说法:

    (@[a-zA-Z0-9.]+\b)
    

    我试着用“?!”但它不起作用。谢谢

    2 回复  |  直到 6 年前
        1
  •  0
  •   Nahuel Fouilleul    6 年前

    从注释来看,下面的正则表达式是可以的

    (?:^|\s)[^@]*
    

    恰恰相反

    (?:^|[^@A-Za-z0-9.]|@(?![A-Za-z0-9.]+\b))[^@]*
    
        2
  •  0
  •   Cristian Bertulli    6 年前

    尝试使用此正则表达式:

    (@+[a-zA-Z0-9]+[a-zA-Z0-9]+)

    我在网上对它进行了测试,它符合您的要求(匹配以@开头的每个单词,可以继续使用点,例如:@hello.sir match |@hello.sir.do match等等。)