我想删除变量的最后一个字符.
我想知道是否可以用gsub选择位置并删除该特定位置的字符.
我想知道是否可以用gsub选择位置并删除该特定位置的字符.
在这个例子中,我想删除E之后的最后一个数字,用于我的4个变量.
variables = c('B10243E1','B10243E2','B10243E3','B10243E4') gsub(pattern = '[[:xdigit:]]{8}.',replacement = '',x = variables)
我以为我们可以使用命令
{}
为了选择一个特定的位置.
解决方法
您可以通过捕获所有字符但最后一个来完成:
variables = c('B10243E1','B10243E4') gsub('^(.*).$','\\1',variables)
说明:
> ^ – 字符串的开头
>(.*) – 所有字符,但换行符
>.$ – 字符串($)结尾之前的最后一个字符(用.捕获).
因此,如果您计划删除最终字符,并且该字符串不包含换行符,则此正则表达式很适合使用.
见demo
输出:
[1] "B10243E" "B10243E" "B10243E" "B10243E"
仅替换第8个字符(这是我在每个项目末尾添加T的示例):
variables = c('B10247E1T','B10243E2T','B10243E3T','B10243E4T') gsub('^(.{7}).',variables)
输出sample program(不是每个项目末尾的ET,数字被删除):
[1] "B10247ET" "B10243ET" "B10243ET" "B10243ET"