从字符串中删除引号空格
Remove quotation marks whitespaces from string
我想从字符串中删除引号空格,在我的例子中,将 ' FIGUEIRAS040C '
更改为 'FIGUEIRAS040C'
:
my.ex<- "SELECT * FROM CF_2021 WHERE ID_UNIQUE = ' FIGUEIRAS040C '"
并且输出需要是:
my.ex
[1] "SELECT * FROM CF_2021 WHERE ID_UNIQUE = 'FIGUEIRAS040C'"
我尝试 str_pad()
函数和 regex
表达式但没有成功。请问有什么办法解决吗?
1) 匹配引号、任意数量的空格( *
)、任意字符的最短字符串(.*?
)直到另一个数量空格 ( *
) 和引号。将其替换为空格之间的部分并用引号将其括起来。如果可以有多个,则使用 gsub 而不是 sub。没有使用包。
sub("' *(.*?) *'", "'\1'", my.ex)
## [1] "SELECT * FROM CF_2021 WHERE ID_UNIQUE = 'FIGUEIRAS040C'"
2) 这种方法适用于 SQLite,如果它支持 trim
函数。
sub("('.*?')", "trim(\1)", my.ex)
## [1] "SELECT * FROM CF_2021 WHERE ID_UNIQUE = trim(' FIGUEIRAS040C ')"
例如,
library(sqldf)
sql <- "select * from iris where Species = ' setosa ' limit 3"
sql2 <- sub("('.*?')", "trim(\1)", sql)
sql2
## [1] "select * from iris where Species = trim(' setosa ') limit 3"
sqldf(sql2)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
我想从字符串中删除引号空格,在我的例子中,将 ' FIGUEIRAS040C '
更改为 'FIGUEIRAS040C'
:
my.ex<- "SELECT * FROM CF_2021 WHERE ID_UNIQUE = ' FIGUEIRAS040C '"
并且输出需要是:
my.ex
[1] "SELECT * FROM CF_2021 WHERE ID_UNIQUE = 'FIGUEIRAS040C'"
我尝试 str_pad()
函数和 regex
表达式但没有成功。请问有什么办法解决吗?
1) 匹配引号、任意数量的空格( *
)、任意字符的最短字符串(.*?
)直到另一个数量空格 ( *
) 和引号。将其替换为空格之间的部分并用引号将其括起来。如果可以有多个,则使用 gsub 而不是 sub。没有使用包。
sub("' *(.*?) *'", "'\1'", my.ex)
## [1] "SELECT * FROM CF_2021 WHERE ID_UNIQUE = 'FIGUEIRAS040C'"
2) 这种方法适用于 SQLite,如果它支持 trim
函数。
sub("('.*?')", "trim(\1)", my.ex)
## [1] "SELECT * FROM CF_2021 WHERE ID_UNIQUE = trim(' FIGUEIRAS040C ')"
例如,
library(sqldf)
sql <- "select * from iris where Species = ' setosa ' limit 3"
sql2 <- sub("('.*?')", "trim(\1)", sql)
sql2
## [1] "select * from iris where Species = trim(' setosa ') limit 3"
sqldf(sql2)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa