在R语言中按起始与结束索引替换多段字符串的问题
指定索引区间的字符串替换方案
直接用R内置的substr函数就能搞定,比正则类方法更简单直接,还不会出现括号不匹配的报错:
- 先定义原字符串:
mystring <- c("code IS (384333)\n AND parse = TURE \n ) \n \n code IS (43343344)\n ) some information here code IS (23423422) ) and more information")
- 执行替换操作:
# 替换1-40位为"orange" substr(mystring, 1, 40) <- "orange" # 替换61-81位为"blue" substr(mystring, 61, 81) <- "blue"
- 查看结果:
cat(mystring) # 输出: # orange # # blue some information here code IS (23423422) ) and more information
为啥之前用gsub/gsubfn不行?因为这俩是基于内容匹配的正则工具,不是按字符索引位置操作的。硬套正则处理位置区间不仅麻烦,还容易因为原字符串里的括号触发正则语法报错,完全没必要。substr就是专门用来按起止索引操作字符串的,直接指定位置赋值就行,高效又稳妥。
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

