我想從字符串中提取方括號中的內容:R:GSUB和捕獲
eq <- "(5) h[m] + nadh[m] + q10[m] --> (4) h[c] + nad[m] + q10h2[m]"
我可以過濾出來:
gsub("\\[.+?\\]","" ,eq) ##replaces square brackets and everything inside it
[1] "(5) h + nadh + q10 --> (4) h + nad + q10h2"
但我怎麼能捕捉到裏面有什麼的括號?我試過如下:
gsub("\\[(.+)?\\])", "\\1", eq)
grep("\\[(.+)?\\]", eq, value=TRUE)
但都返回了我的整個字符串:
[1] "(5) h[m] + nadh[m] + q10[m] --> (4) h[c] + nad[m] + q10h2[m]"
而且,在我的應用我從來不知道有多少這樣的條款在方括號中出現,所以我不知道gsub中的'替換'參數應該如何(例如\\1
或\\1_\\2
)。 在此先感謝!
這工作正常,謝謝!不過,我不明白爲什麼我上面的gsub捕獲不起作用。 – user1981275
現在我明白了爲什麼gsub和grep沒有工作,謝謝澄清! – user1981275