![](/img/trans.png)
[英]Gsub command to replace all spaces with a comma and space, (", "), except after certain words with R
[英]Using gsub() to replace all numbers except after certain substrings
假设我们有:
TestStrings <- c("Some number < 100", "Some number > 999", "Some number $1000", "Some number 1000000")
我想用空格替换所有数字,除了子字符串后面的数字:
"< \\d+" "> \\d+" "$\\d+"
我可以在函数gsub()
编写什么正则表达式来完成这样的任务。
我知道以下代码是错误的,但这是我所拥有的。
gsub(pattern = "^> \\d+|^< \\d+|^$\\d+", replace = " ", TestStrings)
也许这有帮助
gsub("[<>] \\d+(*SKIP)(*FAIL)|\\d+", " ", TestStrings, perl = TRUE)
#[1] "Some number < 100" "Some number > 999" "Some number $ " "Some number "
如果我们不需要$
gsub("[<>] \\d+(*SKIP)(*FAIL)|\\$*\\d+", " ", TestStrings, perl = TRUE)
#[1] "Some number < 100" "Some number > 999" "Some number " "Some number "
如果我们需要$
和数字
gsub("([<>] |\\$)\\d+(*SKIP)(*FAIL)|\\d+", " ", TestStrings, perl = TRUE)
#[1] "Some number < 100" "Some number > 999" "Some number $1000" "Some number "
那这个呢:
gsub("[<>\\$] ?\\d+", " ", TestStrings)
它返回:
[1] "Some number " "Some number " "Some number " "Some number 1000000"
我认为这就是你要找的。
编辑实际上你想要相反的,所以
gsub("([<>\\$] ?\\d+)|\\d+", "\\1", TestStrings)
[1] "Some number < 100" "Some number > 999" "Some number $1000" "Some number "
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.