如何在 R 中匹配字符串和白色 space
How to match a string and white space in R
我有一个数据框,其列的值如下:
"Average 18.24""Error 23.34"。我的 objective 是从这些替换文本和以下 space。在 R 中。任何人都可以帮助我使用正则表达式模式来做到这一点吗?
我能够使用 [A-Z] 成功地做到这一点。但是我无法合并白色 space。 [A-Z][[:space:]] 运气不好。
感谢您的帮助。
您可以使用量词并将 a-z
添加到模式(和 ^
锚点)
您可以使用
"^\S+\s+"
"^[a-zA-Z]+[[:space:]]+"
> b <- c("Average 18.24", "Error 23.34")
> sub("^[A-Za-z]+[[:space:]]+", "", b)
> ## or sub("^\S+\s+", "", b)
[1] "18.24" "23.34"
详情:
^
- 字符串开头
[A-Za-z]+
- 一个或多个字母(替换为 \S+
以匹配 1 个或多个非空格)
[[:space:]]+
- 1+ 个空格(或者 \s+
将匹配 1 个或多个空格)
我们可以使用sub
。使用模式 \D+
匹配所有非数字字符,然后在替换中使用 ''
删除这些字符。
sub("\D+", '', v2)
#[1] "18.24" "23.34"
或匹配一个或多个单词字符后跟一个或多个space并替换为''
。
sub("\w+\s+", "", v2)
#[1] "18.24" "23.34"
或者如果我们使用 stringr
library(stringr)
word(v2, 2)
#[1] "18.24" "23.34"
数据
v2 <- c("Average 18.24" ,"Error 23.34")
我有一个数据框,其列的值如下:
"Average 18.24""Error 23.34"。我的 objective 是从这些替换文本和以下 space。在 R 中。任何人都可以帮助我使用正则表达式模式来做到这一点吗?
我能够使用 [A-Z] 成功地做到这一点。但是我无法合并白色 space。 [A-Z][[:space:]] 运气不好。 感谢您的帮助。
您可以使用量词并将 a-z
添加到模式(和 ^
锚点)
您可以使用
"^\S+\s+"
"^[a-zA-Z]+[[:space:]]+"
> b <- c("Average 18.24", "Error 23.34")
> sub("^[A-Za-z]+[[:space:]]+", "", b)
> ## or sub("^\S+\s+", "", b)
[1] "18.24" "23.34"
详情:
^
- 字符串开头[A-Za-z]+
- 一个或多个字母(替换为\S+
以匹配 1 个或多个非空格)[[:space:]]+
- 1+ 个空格(或者\s+
将匹配 1 个或多个空格)
我们可以使用sub
。使用模式 \D+
匹配所有非数字字符,然后在替换中使用 ''
删除这些字符。
sub("\D+", '', v2)
#[1] "18.24" "23.34"
或匹配一个或多个单词字符后跟一个或多个space并替换为''
。
sub("\w+\s+", "", v2)
#[1] "18.24" "23.34"
或者如果我们使用 stringr
library(stringr)
word(v2, 2)
#[1] "18.24" "23.34"
数据
v2 <- c("Average 18.24" ,"Error 23.34")