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

使用stringr提取向量元素中最后一个字母前的所有字符

提取字符串最后一个字母前的内容(stringr实现)

核心思路

要提取每个元素中最后一个字母之前的所有字符,关键是用正则定位到字符串里最后一个字母的位置,然后截取其前面的内容。优先使用stringr包的str_extract函数配合正则表达式实现。

代码实现

# 加载stringr包
library(stringr)

# 输入向量
x <- c("1H23456789H10", "97845784584H2", "0H987654321H0", "0P45454545A3", "63A00000000000A91")

# 提取目标内容
result <- str_extract(x, "^.*(?=[A-Za-z][^A-Za-z]*$)")

# 查看结果
print(result)

正则表达式解释

^.*(?=[A-Za-z][^A-Za-z]*$) 各部分含义:

  • ^:匹配字符串的起始位置
  • .*:匹配任意数量的任意字符(贪婪模式,尽可能多匹配)
  • (?=...):正向预查(不捕获内容),用来限定前面.*的匹配范围:
    • [A-Za-z]:匹配任意一个字母
    • [^A-Za-z]*:匹配任意数量的非字母字符
    • $:匹配字符串的结束位置
      整体作用是:匹配从开头到最后一个字母之前的所有字符,确保这个字母后面只有非字母字符直到字符串结尾。

运行结果

输出结果与预期完全一致:

[1] "1H23456789"      "97845784584"     "0H987654321"     "0P45454545"      "63A00000000000"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:15:33