Ich bin mir sicher, dass dies ein Duplikat ist, aber ich kann es nicht finden.Zeichenkette zwischen [und] extrahieren nur wenn + zwischen [und]
Der nächstgelegene ich bisher gefunden habe ist:
Extract info inside all parenthesis in R
Ich wünsche jedes Spiel aus einer Zeichenfolge zu extrahieren, die mit einem [
beginnt, endet mit einem ]
und hat eine +
Plus zwischen diese Klammern. Der reguläre Ausdruck, den ich basierend auf einer früheren Antwort zusammengestellt habe, ist etwas zu gierig.
library(magrittr)
str <- "[a] , [a + b] + [b] , [b - q] , [d - e + f]"
gregexpr(pattern = "(?=\\[).*?[+].*?(?<=\\])",
text = str,
perl = TRUE) %>%
regmatches(x = str,
m = .)
Das gibt
[[1]]
[1] "[a] , [a + b]" "[b] , [b - q] , [d - e + f]"
wo, was ich will
ist[[1]]
[1] "[a + b]" "[d - e + f]"
Was möchten Sie tun es in Fällen zurück wie „[a - [b + c]] "oder" [a + [b - c]], [a] "? – LarsH
Ich hatte nicht über Verschachtelung nachgedacht, aber Tot's Antwort ist ausreichend für meine Notwendigkeit, '+' zwischen Klammern zu verbieten. – Benjamin