所以我在編輯R中的一些字符串,並且我想從字符串中刪除括號中的所有內容。問題是,我對正則表達式不太瞭解,並且似乎任何時候我想用gsub來弄亂括號,它都不起作用,或者不會產生正確的結果。R中的字符串編輯 - 帶圓括號的問題
任何提示?我有一種感覺它是一個可以解決的問題。可能有一個我可以使用的功能,不是gsub?
Ex。字符串:「abc def(foo)abc(def)」應該被剝離爲「abc def abc」
如果要做到這一點的唯一方法是在圓括號中指定什麼,那也可以。
所以我在編輯R中的一些字符串,並且我想從字符串中刪除括號中的所有內容。問題是,我對正則表達式不太瞭解,並且似乎任何時候我想用gsub來弄亂括號,它都不起作用,或者不會產生正確的結果。R中的字符串編輯 - 帶圓括號的問題
任何提示?我有一種感覺它是一個可以解決的問題。可能有一個我可以使用的功能,不是gsub?
Ex。字符串:「abc def(foo)abc(def)」應該被剝離爲「abc def abc」
如果要做到這一點的唯一方法是在圓括號中指定什麼,那也可以。
只是另一種方式:
x <- "abc def (foo) abc (def)"
gsub(" *\\(.*?)", "", x)
你需要躲避(
有\
在正則表達式。在R中,你需要逃脫兩次\\
。然後你搜索在非貪婪的方式(
後什麼(.*
),與.*
後?
其次)
(你沒有逃跑。
一個很好的優雅的解決方案。 – riders994
括號通常是正則表達式中的特殊字符,也是R使用的字符。您必須用反斜槓\
將它們轉義。麻煩的是,反斜槓需要R中的字符串進行轉義爲好,用另一個反斜槓,這導致了以下相當笨拙建設:
gsub(" *\\([^)]*\\) *", " ", "abc def (foo) abc (def)")
小心用空格,這些都不是我的gsub
調用正確處理。
完美的作品 – riders994
在qdap包中的bracketX
功能設計對於這個問題:!
library(qdap)
x <- "abc def (foo) abc (def)"
bracketX(x, "round")
## > bracketX(x, "round")
## [1] "abc def abc"
的你已經嘗試將增值到您問題的代碼示例 – krlmlr