正则表达式替换除匹配项之外的所有内容

Regex replace everything except match

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

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

我试过使用'?!'但它不起作用。谢谢!

根据评论,下面的正则表达式是可以的

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

恰恰相反

(?:^|[^@A-Za-z0-9.]|@(?![A-Za-z0-9.]+\b))[^@]*

试试这个正则表达式:

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

我在线测试了它,它可以满足您的需求(匹配以@开头的每个单词,它可以以点继续,es:@hello.sir match | @hello.sir .do 匹配等等.. )