我对下面的代码感到困惑,希望有人能给我一些见解,其中似乎新行可以与R中的空格匹配。gsub
简而言之,我使用 sprintf 准备 SQL 查询语句,为了使代码可读且易于修改,我将语句拆分为多行。gsub 用于摆脱换行符,但令我惊讶的是,它似乎\\s+可以匹配换行符和额外的空格。
chr = 1
pos = 1002
ref = 'A'
alt = 'G'
cmd <- sprintf("select * from MyDB
where `chr` ='%s'
and pos = %i
and ref = %s
and alt = %s",
chr, pos, ref, alt)
cmd # where new lines were evident
query <- gsub(pattern='\\n+',replacement=" ", cmd)
query #no new line, extra spaces remaining
query2 <- gsub(pattern='\\s+',replacement=" ", cmd)
query2 #new line and extra spaces all gone
query3 <- gsub(pattern="[[:space:]]+",replacement=" ", cmd)
query3 #same as query2
该代码在 R 版本 3.5.1 中进行了测试。希望您可以检查代码并分享您的想法。