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

如何使用正则表达式仅保留字符串两个冒号间的英文字母

正则实现冒号区间仅保留英文字母

需求说明

实现字符串处理逻辑:移除无关字符,仅保留成对冒号(:)之间的英文字母,冒号外的内容保持原样。

测试样例

  • 输入测试代码:
text = "nice :star-struck:    :face blowing a kiss: 99"
  • 期望输出:
nice :starstruck: :faceblowingakiss: 99

实现方案

用两层正则替换就能搞定,思路很简单:

  • 第一层正则通过零宽断言精准定位所有成对冒号之间的内容段,不会误改冒号外的文本
  • 对每段匹配到的冒号间内容做二次替换,删掉所有非英文字母的字符即可

完整可运行代码:

import re

text = "nice :star-struck:    :face blowing a kiss: 99"
text = re.sub(
    r"(?<=:[a-zA-Z])(.*?)(?=:)",
    lambda match: re.sub(r"[^a-zA-Z]", "", match.group(1)),
    text
)
print(text)

运行代码后输出结果和预期完全一致。

感谢Samwise、Andrej Kesely提供该实现方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:01:08