[英]Using ampersand (&) inside gsub R function for pattern replacement (backreference to capture group)
[英]R: Use gsub to capture no match backreference
我正在嘗試使用regex
和向后引用來做一些事情,這涉及抓取其中沒有函數的字符串並將它們放在f(x)
函數中。
a <- c("x(1)","y(212)", "z(b)","234", "cd")
gsub("solution", "f\\(\\1\\)", a)
# "x(1)" "y(212)" "z(b)" "f(234)" "f(cd)"
# Naively I have tried the following:
gsub("(.*)&[^(*.\\(.*\\))]", "f\\(\\1\\)", a)
gsub("(.*)&[!(*.\\(.*\\))]", "f\\(\\1\\)", a)
gsub("(.*)&(!(*.\\(.*\\)))", "f\\(\\1\\)", a)
您可以匹配並捕獲不包含括號的字符串,然后使用f()
進行包裝; 對於確實在其中帶有括號的字符串,由於它們與模式不匹配,它們將保持原樣:
sub("^([^()]+)$", "f(\\1)", a)
# [1] "x(1)" "y(212)" "z(b)" "f(234)" "f(cd)"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.