的內容我們有一個免費的文字:刪除手鐲
sal{del{rf}ghladfs}wds{w12rf}qq
輸出應該是:
salwdsqq
如果可能的話,請分享的各種方法。例如:lapply,GSUB,for/while循環,用grep
的內容我們有一個免費的文字:刪除手鐲
sal{del{rf}ghladfs}wds{w12rf}qq
輸出應該是:
salwdsqq
如果可能的話,請分享的各種方法。例如:lapply,GSUB,for/while循環,用grep
這個工程中的R
string1 <- "sal{del{rf}ghla}dfs}wds{w12rf}qq"
string2 <- gsub("{[^{}}]*}", "", string1, perl = TRUE)
string3 <- gsub("{.*}", "", string2, perl = TRUE)
string3
我認爲這會工作,你是否有平衡或不平衡的括號:
不平衡(如q)
x <- "sal{del{rf}ghla}dfs}wds{w12rf}qq "
paste0(gsub('\\w+}|[{} ]', '', strsplit(x, '\\{\\w+')[[1]]), collapse = '')
# [1] "salwdsqq"
插入一個隨機
x <- "sal{del{{rf}ghla}dfs}wds{w12rf}qq "
paste0(gsub('\\w+}|[{} ]', '', strsplit(x, '\\{\\w+')[[1]]), collapse = '')
# [1] "salwdsqq"
您可以使用遞歸正則表達式來執行此操作。
x <- 'sal{del{rf}{sfddfdffdf}ghladfs}wds{w12rf}qq'
gsub('{(?:[^{}]+|(?R))*+}', '', x, perl=TRUE)
# [1] "salwdsqq"
請編輯問題,並告訴您的輸入和期望的輸出之間的關係。我可以猜到,但是你要寫出好問題。人們越難解答你的意思,你得到答案的機會就越好。 –
您正在使用哪種語言?這非常含糊。 –
你是否缺少一個開放的'{'或文本是否正確? –