如何删除字符串中最后一个下划线及其之后的内容?
删除字符串最后一个下划线及后续内容的解决方案
要搞定这个需求,你可以用精准的正则表达式让gsub只定位到最后一个下划线,直接用这段代码:
gsub("_[^_]*$", "", "surname_name_job")
正则逻辑说明
_:精准匹配下划线[^_]*:匹配任意非下划线的字符(重复0次或多次,确保只抓最后一个下划线后面的内容)$:锚定到字符串结尾,保证匹配的是最后一段
测试下来,输入surname_name_job会返回surname_name,完全符合你的要求。
你之前用的_.*是贪心匹配,会从第一个下划线开始一直匹配到字符串结尾,所以才会删掉后面所有内容,换成上面的正则就解决问题了。
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

