簡體   English   中英

R:使用gsub捕獲不匹配的反向引用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM