当前位置: 首页 > 知识库问答 >
问题:

使用gsub删除多个逗号和尾随逗号

方俊
2023-03-14

例如,我希望使用函数trimcommasx转换为y:

x <- c("a,b,c", ",a,b,,c", ",,,a,,,b,c,,,")
# y <- TrimCommas(x) # presumably
y <- c("a,b,c", "a,b,c", "a,b,c")

空格的解决方案是gsub(“^*(?<=)*$”,“”,x,perl=t),所以我希望比较这方面的解决方案也能帮助解释一些正则表达式的基本原理。

共有1个答案

韩阳成
2023-03-14

解决方法不是很相似吗?

x <- c("a,b,c", ",a,b,,c", ",,,a,,,b,c,,,")
gsub("^,*|(?<=,),|,*$", "", x, perl=T)
# [1] "a,b,c" "a,b,c" "a,b,c"

regex^,*(?<=,),,*$:

  • ^,*--这与字符串开头的0个或多个逗号匹配
  • (?<=,),--这是一个正面的检查,以查看逗号后面是否有逗号,因此它与,,
  • 中的 ,相匹配
  • ,*$--这与字符串末尾的0个或多个逗号匹配

正如你所看到的,上面的所有内容都没有被替换。

您可以使用此函数使其通用于任何字符(“”“、”等):

TrimMult <- function(x, char=" ") {
  return(gsub(paste0("^", char, "*|(?<=", char, ")", char, "|", char, "*$"),
              "", x, perl=T))
}
 类似资料:
  • 问题内容: 我从数据库中得到了String,它有多个逗号()。我想删除 最后一个逗号, 但实际上找不到一种简单的方法。 我有的: 我想要的是: 问题答案: 要删除紧随字符串结尾的部分,您可以执行以下操作: 相对于/ solution,它需要对此类情况进行特殊处理,这可以优雅地处理空列表(空字符串)。 示例代码: 注意: 由于存在有关零件的一些注释和建议的编辑:表达式应与要删除的尾部零件匹配。 如果

  • 问题内容: 我想删除字符串末尾的逗号。由于现在我正在使用 但这只会删除字符串的最后一个字符。我正在动态添加字符串,因此有时字符串末尾没有逗号。如果字符串末尾有逗号,如何使PHP从字符串末尾除去逗号? 问题答案: 此处的文档

  • 问题内容: 在Python中,这样的结尾逗号当然不是: 但是,与此同时,如果 意外地用 了逗号结尾,可能很难抓住这种“问题”,尤其是对于Python新手。 我在想,是否可以借助智能代码质量控制功能 尽早地 静态地 解决这种“问题”?,或静态代码分析工具。 或者,另一个想法是 限制/突出显示隐式创建一个元组而没有括号 。可能吗? 问题答案: 已经将其检测为问题(从1.7版开始)。 例如,这是我的:

  • 问题内容: 手动生成JSON对象或数组时,通常在对象或数组的最后一项上留下逗号逗号会更容易。例如,从字符串数组输出的代码可能看起来像(在C ++中的伪代码中): 给你一个像 可以吗? 问题答案: 不幸的是,JSON规范不允许以逗号结尾。有几种浏览器可以使用它,但是通常您需要担心所有浏览器。 通常,我会尝试解决问题,并在实际值前添加逗号,因此最终得到的代码如下所示: for循环中多余的一行代码几乎不

  • 我有一个5页的pdf文件,每页有一个表,我需要提取。我需要从每一页提取所有的表,并将它们保存为数据帧文件,所有使用python,所以我转换了文件,使用tabula的csv文件 文件输出的主要问题。csv是指有几个额外的逗号。 实例 当我将csv文件转换成行/列时,我得到了一些行偏移 注意:dataframe应该有6列,其中包含空字段。我猜额外的逗号来自pdf文件中的空格。如何从csv文件中删除额外

  • 问题内容: 如何从同一字符串中删除美元符号($)和所有逗号(,)?避免使用正则表达式会更好吗? 问题答案: 像这样 输出