包含除某个正则表达式之外的所有文本的正则表达式

Regular expression containing all the text but a certain regular expression

我来自这里Regex: match everything but但是他们只说了如何获得一个包含除了一些字符串之外的所有内容的正则表达式。

我想做的是找到一个正则表达式来匹配我所有的文本,但这个 ^([\S+" "?]+" "@[a-zA-Z0-9_]{1,15} )$(或任何其他正则表达式)。

以下正则表达式将匹配以 @ 字符开头的单词之前由空格分隔的单词;

([^@\s]+ )+@[\w]{1,15}

例如,这将 return 字符串的两个匹配项:

User Name @username Text Text Text Text random @thing

  • User Name @username
  • Text Text Text Text random @thing

然后您可以 select 第二个匹配项来获取您需要的文本。或者,如果您在编译正则表达式(例如@response、@config 等)之前知道 @thing 是什么,您可以将正则表达式的 @[\w]{1,15} 部分替换为特定的 @thing 以只检索你想要的文本。