R: gsub 标点字符只出现在字符串的末尾

标签 r regex gsub

我有像 'aa;a' 'aa;' 这样的字符串我需要删除';' (或任何其他标点符号)仅当字符串以它结尾时。如果它以它开头或中间包含它,我不想删除它。

以下行导致删除“;”

gsub("(^.*)[[:punct:]]","",'a;a')

最佳答案

我们可以在 $ 之后指定元字符 [[:punct:]] 来表示字符串的结尾,因此它匹配字符串末尾的标点符号并将其替换为空白( "" )

sub("[[:punct:]]$","",c('a;a', 'aa;'))
#[1] "a;a" "aa" 

请注意,代替 gsub(全局替换),sub 仅用于匹配和替换单个实例。

关于R: gsub 标点字符只出现在字符串的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40781224/

相关文章:

regex - 在 R 中修剪字符串

mysql - 如何在 R 中的 for 循环上进行查询

r - strsplit 变量分隔符

c++ - 为什么 regex_match 与我的正则表达式不匹配?

AIX 机器中交换信息的正则表达式

Javascript 正则表达式再次捕获

r - 使用 Roxygen 和 testthat,使内部辅助函数可用于 R CMD 检查期间调用的测试用例的正确方法是什么?

sql - 如何根据 R 中的数据框从 ODBC 数据库中删除记录

r - 如何仅在 R 中提取第一个数字字符之前的所有文本

r - 在许多列上使用 dplyr + gsub