如何在 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:]]+"

regex demo

R demo:

> 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")