regex - 删除特定序列后的第一个字符

标签 regex r string

我正在努力了解如何删除特定序列后的第一个字符。举个例子:

string <- "26 765 64 673 762"

我想删除 76 和 67 之后的第一个字符,因此预期结果是:

string <- "26 76 64 67 76"

关于如何使用正则表达式执行此操作有任何提示吗?

最佳答案

您可以仅使用

gsub("(76|67).", "\\1", string)

其中 (76|67) 匹配 7667 并且 . 匹配任何字符(因为使用 gsub 时不带 perl=TRUE 参数,使用 TRE 正则表达式引擎。

要仅匹配 7667 之后的数字,请使用 \\d[ 0-9]:

gsub("(76|67)\\d", "\\1", string)
             ^^^

您需要 \1 反向引用来插入捕获的 6776 子字符串/em> 在捕获组 (67|76) 的帮助下。因此,您需要 gsub("(67|76).", "\\1 ", string) 其中 \\17667 和空格是您添加到字符串中的内容,而不是任何与 . 匹配的字符。

有关使用正则表达式进行字符串替换的更多信息,请访问 regular-expressions.info一些例子可以找到 here .

关于regex - 删除特定序列后的第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37787739/

相关文章:

javascript - 如何从 0000 和 9999 中搜索匹配 "string"的字符串

r - ggplot : re-order categorical y-axis (Gantt chart)

Python - 如何删除以数字开头并包含句点的单词

ios - 从 RSS feed swift 获取 img url

r - 绘制带有悬挂叶子的水平树状图? (右)

R4DS 错误比较 (1) 仅适用于原子和列表类型

Java 相当于 python 的 String lstrip()?

javascript - JS中的 "and `有什么区别?

将 "abcd"转换为 "a b c d "的 ruby​​ 方法(例如,用空格填充每个字符)

正则表达式