我正在努力了解如何删除特定序列后的第一个字符。举个例子:
string <- "26 765 64 673 762"
我想删除 76 和 67 之后的第一个字符,因此预期结果是:
string <- "26 76 64 67 76"
关于如何使用正则表达式执行此操作有任何提示吗?
最佳答案
您可以仅使用
gsub("(76|67).", "\\1", string)
其中 (76|67)
匹配 76
或 67
并且 .
匹配任何字符(因为使用 gsub
时不带 perl=TRUE
参数,使用 TRE 正则表达式引擎。
要仅匹配 76
或 67
之后的数字,请使用 \\d
或 [ 0-9]
:
gsub("(76|67)\\d", "\\1", string)
^^^
您需要 \1
反向引用来插入捕获的 67
或 76
子字符串/em> 在捕获组 (67|76)
的帮助下。因此,您需要 gsub("(67|76).", "\\1 ", string)
其中 \\1
是 76
或 67
和空格是您添加到字符串中的内容,而不是任何与 .
匹配的字符。
有关使用正则表达式进行字符串替换的更多信息,请访问 regular-expressions.info一些例子可以找到 here .
关于regex - 删除特定序列后的第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37787739/