r - 使用 R 有选择地删除遵循模式的字符

标签 r regex

如何有选择地从符合模式的字符串中删除字符?

我希望删除 7 个数字和前面的冒号。

例如:

"((Northern_b:0.005926,Tropical_b:0.000000)N19:0.002950"

应该变成

"((Northern_b,Tropical_b)N19"

最佳答案

x <- "((Northern_b:0.005926,Tropical_b:0.000000)N19:0.002950"
gsub("[:]\\d{1}[.]\\d{6}", "", x)

gsub 函数执行字符串替换并替换字符串中找到的所有匹配项(请参阅?gsub)。如果您想要一个更友好的名称,另一种选择是 stringr 包中的 str_replace_all

正则表达式使用 \\d{n} 搜索来查找数字。整数表示要查找的位数。因此 \\d{1} 查找长度为 1 的一组数字。\\d{6} 查找长度为 6 的一组数字。

关于r - 使用 R 有选择地删除遵循模式的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31807433/

相关文章:

r - For 循环 1) 提取并 2) 粘贴到 R 中的对象

R:填写多列

javascript - 用于名称验证的正则表达式仅允许字母和空格

Java Matcher 慢速正则表达式

从 boxplot 和 plotly 中删除异常值

r - 关于在 R 中学习面向对象编程的有用书籍?

正则表达式上的 Python TypeError

regex - 使用 sed 打印每个匹配模式的第一行出现次数

java - 使用正则表达式从字符串中查找子字符串java

r - full_join 通过变量作为列名