R语言如何删除字符串中日期之后的末尾内容
R语言截断字符串保留日期片段的实现方案
原始测试变量定义:
a <- "Submitted 28 March, 2022; originally announced March 2022."
直接用R基础库内置函数就能实现两种目标输出,无需安装第三方扩展包:
- 输出带
Submitted前缀的结果"Submitted 28 March, 2022"
核心逻辑是截取第一个分号前的所有内容,任选一种写法即可:# 正则替换法:匹配第一个分号到字符串末尾的所有内容,替换为空值 res1 <- sub(";.*", "", a) # 分隔符切分法:按分号切分字符串,取第一部分内容,fixed=TRUE提升匹配效率 res1_alt <- strsplit(a, ";", fixed = TRUE)[[1]][1] - 输出纯日期结果
"28 March, 2022"
通过正则匹配标准日期格式直接提取目标片段,不受前后冗余内容干扰,适配性更强:# 匹配「数字日期+英文月份+逗号+四位年份」的标准日期结构 res2 <- regmatches(a, regexpr("\\d{1,2} [[:alpha:]]+, \\d{4}", a))
注意:上述第一种截断方案默认以第一个出现的分号为分割点,正好匹配当前样例中日期结束后紧跟分号的结构,如果后续同类字符串的截断标记位置有变化,对应调整匹配规则即可。
内容的提问来源于stack exchange,提问作者isma。
相关产品推荐
相关产品推荐

