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

如何用正则表达式匹配指定字符之后出现的另一指定字符

解决方案

可用正则表达式

如果你的正则引擎支持可变长度正向回顾后发(绝大多数主流引擎如Java、Python、.NET、新版JS都支持),可以直接用:

(?<=@[^.]*)\..*$

如果引擎不支持可变长度后视,可以用分组捕获的兼容写法,取第一个捕获组的内容即可:

@[^.]*(\..*)$

匹配效果验证

以示例字符串 jhony@domain.com 为例,上述正则可匹配到结果 .com,完全符合需求。如果是更复杂的场景如 user@sub.domain.com,匹配结果为 .domain.com,也满足「第一个@之后第一个.到末尾」的要求。

原正则失效原因

你之前写的 (?<=@)([.])$ 存在两处逻辑偏差:

  • 要求@符号后必须紧跟.,忽略了两者之间存在其他字符的情况
  • 要求.后直接到字符串末尾,无法匹配.后还有内容的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:48:02