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

正则表达式问题:如何提取@与:之间的纯字符串(去除符号)

嘿,这问题我熟!你其实已经离正确答案很近了——你的正则表达式里已经包含了捕获组,只是没正确提取捕获组的内容而已。我给你两种靠谱的解决方案:

方法1:正确利用捕获组提取内容

你之前写的@([^.]*):其实已经把@和:之间的内容放在第一个捕获组里了,只是你可能取了整个匹配结果(也就是@server:),而不是捕获组里的内容。另外建议把[^.]*改成[^:]+,因为你要匹配到:为止,用[^:]+能精准匹配所有非:的字符,比[^.]*更贴合需求。

举个Python的实际用法例子:

import re
target_str = "example@server:test123"
# 使用修正后的正则,捕获@和:之间的内容
match_result = re.search(r'@([^:]+):', target_str)
if match_result:
    # 提取第一个捕获组的内容,这就是你要的纯字符串
    desired_text = match_result.group(1)
    print(desired_text)  # 输出: server

方法2:用零宽断言直接匹配目标内容

如果你不想用捕获组,也可以用零宽断言来让正则直接匹配@和:之间的部分,不需要额外提取分组:

(?<=@)[^:]+(?=:)
  • (?<=@):正向肯定后查,确保当前位置前面是@
  • [^:]+:匹配任意非:的字符(也就是你要的内容)
  • (?=:):正向肯定预查,确保当前位置后面是:

同样用Python举例:

import re
target_str = "example@server:test123"
desired_text = re.search(r'(?<=@)[^:]+(?=:)', target_str).group()
print(desired_text)  # 输出: server

这两种方法都能完美得到你想要的server,选哪种看你自己的习惯就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 06:52:50