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

如何删除字符串中最后一个句点之前的所有文本

实现方案:截取字符串最后一个句点后的内容

需求说明

  • 输入示例字符串:TEMPORAL.LOBE_Oligodendrocytes.SCZ_PGC3_GWAS
  • 目标输出:SCZ_PGC3_GWAS
  • 核心规则:删除字符串中最后一个.之前的所有内容,保留后缀部分,需避免字符串前半段存在的多个.干扰匹配结果。

不同编程语言的实现代码

Python

优先使用右拆分的简洁写法,逻辑清晰无冗余:

raw_str = "TEMPORAL.LOBE_Oligodendrocytes.SCZ_PGC3_GWAS"
res = raw_str.rsplit('.', maxsplit=1)[-1]

如果需要兼容「字符串中不存在句点」的边界场景(避免索引报错),可以用位置查找的写法:

raw_str = "TEMPORAL.LOBE_Oligodendrocytes.SCZ_PGC3_GWAS"
last_dot_idx = raw_str.rfind('.')
res = raw_str[last_dot_idx+1:] if last_dot_idx != -1 else raw_str

R

通过贪婪正则直接替换前缀即可,适合批量处理向量格式的字符串:

raw_str <- "TEMPORAL.LOBE_Oligodendrocytes.SCZ_PGC3_GWAS"
res <- sub(".*\\.", "", raw_str)

Bash/Shell

直接用Shell内置字符串截取语法,不需要调用外部命令,执行效率最高:

raw_str="TEMPORAL.LOBE_Oligodendrocytes.SCZ_PGC3_GWAS"
res=${raw_str##*.}

JavaScript

通过lastIndexOf定位最后一个句点的位置后直接截取:

const rawStr = "TEMPORAL.LOBE_Oligodendrocytes.SCZ_PGC3_GWAS"
const res = rawStr.substring(rawStr.lastIndexOf('.') + 1)

以上实现均针对多句点的字符串场景做了适配,不会错误匹配到靠前的句点,无句点时会默认返回原字符串,不会抛出异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:09:18