簡體   English   中英

R:在一個字符串中匹配M個正則表達式后提取N個字符

[英]R: Extract N characters after M regex matches in one string

在一個字符串中所有正則表達式匹配之后,我很難准確地提取N個字符。 例如N = 3,並且正則表達式匹配是一個左括號“(”,如果M> = 1,則可以在它們之間粘貼一個輔助詞。

x1 = "use actual (Mon 3)|(Tue 4)"
x2 = "use actual (Mon 10)"
x3 = "use actual"

所需的輸出是:

"Mon and Tue"
"Mon"
""

我從gsub( ".*\\\\(", "", c("use actual (Mon 3)|(Tue 4)")) ,然后嘗試跟隨R提取字符串的一部分,但在?和通配符中迷路了。 謝謝!

嘗試

 library(stringr)
 sapply(str_extract_all(x, perl('(?<=\\()[A-Za-z]{3}')),
             paste, collapse=' and ')
 #[1] "Mon and Tue"         "Mon"                 ""                   
 #[4] "Mon and Tue and Wed" "Mon"   

數據

 x4 <- "use actual (Mon 3)|(Tue 4)|(Wed 5)"
 x5 <- "foo (Mond bar)"
 x <- c(x1, x2, x3, x4, x5)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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