R:如何更换.在一个字符串?

xia*_*dai 15 regex r

我有一个字符串说"ab",我想替换"." 用"_".

gsub(".","_","a.b")
Run Code Online (Sandbox Code Playgroud)

不起作用.匹配所有字符.

gsub("\.","_","a.b")
Run Code Online (Sandbox Code Playgroud)

只是给我一个错误.

阅读?gsub上的文档没有用!

那么如何直截了当地做这件事呢?

fal*_*tru 22

.匹配任何角色.逃避.使用字面\匹配..

\ 本身也应该被转义:

> gsub("\\.", "_", "a.b")
[1] "a_b"
Run Code Online (Sandbox Code Playgroud)


hwn*_*wnd 8

你需要双重逃避\\,逃脱.以匹配文字点并逃避\.请记住,使用sub替换第一次出现的模式,gsub替换所有出现的事件.

string <- "a.b"
sub('\\.', '_', string)
[1] "a_b"

string <- "a.b.c.d.e.f"
gsub('\\.', '_', string)
[1] "a_b_c_d_e_f"
Run Code Online (Sandbox Code Playgroud)

您也可以使用subgsub使用fixed = TRUE参数.这将使用表示您要搜索的模式的字符串,因为它忽略了特殊字符.

string <- "a.b"
sub('.', '_', string, fixed = TRUE)
[1] "a_b"
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这样:

gsub("[.]","_","a.b")
Run Code Online (Sandbox Code Playgroud)