![](/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.