You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式匹配@与空格间内容异常,求修正方案

解决正则匹配最后一个@与空格间内容的问题

你的原正则@+(.+? )失效的原因是:@+会优先匹配字符串开头的一个或多个@,随后的非贪婪.+?会从这个位置开始,一直匹配到第一个空格为止,自然会把ss@aa整个包含进去——因为从第一个@后面到空格的内容就是这段。

要精准匹配最后一个@到空格间的内容,给你两个可行方案:

方案1:用贪婪匹配定位最后一个@

正则表达式:.*@([^@]+?)(?=\s)

  • .*会贪婪匹配到字符串中**最后一个@**的位置,直接跳过前面所有的@和内容
  • ([^@]+?)匹配@后面到空格前的内容([^@]确保不会包含其他@,非贪婪模式保证只到第一个空格)
  • (?=\s)是正向预查,确保捕获内容的后面紧跟空格,避免误匹配其他场景

方案2:用反向预查锁定目标@

正则表达式:(?<=@)([^@\s]+)(?=\s)

  • (?<=@)反向预查,确保捕获内容的前面是@
  • [^@\s]+匹配既不是@也不是空格的连续字符——这会自动跳过前面@后包含@的内容(比如ss@里有@,不符合规则),只匹配最后一个@后的aa
  • (?=\s)同样保证捕获内容后是空格

测试输入@@ss@aa s,两个正则的捕获组结果都是aa,符合你的需求。

内容的提问来源于stack exchange,提问作者NoKey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:51:06