R str_replace_all 除了句点和破折号
R str_replace_all except periods and dashes
我正在尝试替换除“.”之外的所有标点符号和 "not words"。和字符串中的“-”,但我正在努力寻找正确的组合来设置正则表达式。
我一直在 R 中使用以下 str_replace_all() 代码,但现在我想指定忽略“.”和 ”-”。我已尝试将其设置为包含 [^.-] 和 ([.-]) 之类的内容,但我没有获得所需的输出。
str_replace_all("[APPLE/O.ORANGE*PLUM-11]", regex("[\W+,[:punct:]]", perl=T)," ")
" APPLE O ORANGE PLUM 11 " #current output
" APPLE O.ORANGE PLUM-11 " #desired output
如有任何建议,我们将不胜感激。谢谢!
使用 ^ 可能更容易,这意味着它匹配括号内未引用的所有内容。通过在框中包含所有字母、数字、. 和 -,您不会替换它们。
library(stringr)
str_replace_all("[APPLE/O.ORANGE*PLUM-11]", "[^a-zA-Z0-9.-]"," ")
请注意 str_replace_all
不允许使用 PCRE 模式,stringr library 由 ICU 正则表达式驱动。
您需要做的事情可以通过使用以下模式的基本 R gsub
来完成:
> x<-"[APPLE/O.ORANGE*PLUM-11]"
> gsub("[^\w.-]", " ", x, perl=TRUE)
[1] " APPLE O.ORANGE PLUM-11 "
参见R demo online. Also, see the regex online demo here。
[^\w.-]
模式匹配除(因为 [^...]
是否定字符 class)以外的任何字符 word char (letter, digit, _
), .
和 -
.
我正在尝试替换除“.”之外的所有标点符号和 "not words"。和字符串中的“-”,但我正在努力寻找正确的组合来设置正则表达式。
我一直在 R 中使用以下 str_replace_all() 代码,但现在我想指定忽略“.”和 ”-”。我已尝试将其设置为包含 [^.-] 和 ([.-]) 之类的内容,但我没有获得所需的输出。
str_replace_all("[APPLE/O.ORANGE*PLUM-11]", regex("[\W+,[:punct:]]", perl=T)," ")
" APPLE O ORANGE PLUM 11 " #current output
" APPLE O.ORANGE PLUM-11 " #desired output
如有任何建议,我们将不胜感激。谢谢!
使用 ^ 可能更容易,这意味着它匹配括号内未引用的所有内容。通过在框中包含所有字母、数字、. 和 -,您不会替换它们。
library(stringr)
str_replace_all("[APPLE/O.ORANGE*PLUM-11]", "[^a-zA-Z0-9.-]"," ")
请注意 str_replace_all
不允许使用 PCRE 模式,stringr library 由 ICU 正则表达式驱动。
您需要做的事情可以通过使用以下模式的基本 R gsub
来完成:
> x<-"[APPLE/O.ORANGE*PLUM-11]"
> gsub("[^\w.-]", " ", x, perl=TRUE)
[1] " APPLE O.ORANGE PLUM-11 "
参见R demo online. Also, see the regex online demo here。
[^\w.-]
模式匹配除(因为 [^...]
是否定字符 class)以外的任何字符 word char (letter, digit, _
), .
和 -
.