Überlappende Übereinstimmungen in R
Ich habe gesucht und konnte dieses @ findForum Diskussion um den Effekt von überlappenden Übereinstimmungen zu erzielen.
Ich fand auch die folgendenS frage über das Finden von Indizes für diese Aufgabe, konnte jedoch keine präzise Aussage über das Erfassen überlappender Übereinstimmungen in der R-Sprache treffen.
Ich kann diese Aufgabe in fast jeder Sprache ausführen, die PCRE) Verwenden einer positiven Lookahead-Zusicherung, während eine Erfassungsgruppe im Lookahead implementiert wird, um die überlappenden Übereinstimmungen zu erfassen.
Aber während ich das genauso mache, wie ich es in anderen Sprachen machen würde, benutze ichperl=T
in R ergeben sich keine Ergebnisse.
> x <- 'ACCACCACCAC'
> regmatches(x, gregexpr('(?=([AC]C))', x, perl=T))[[1]]
[1] "" "" "" "" "" "" ""
Das gleiche gilt für die Verwendung der beidenstringi
undstringr
package.
> library(stringi)
> library(stringr)
> stri_extract_all_regex(x, '(?=([AC]C))')[[1]]
[1] "" "" "" "" "" "" ""
> str_extract_all(x, perl('(?=([AC]C))'))[[1]]
[1] "" "" "" "" "" "" ""
Die korrekten Ergebnisse, die bei dieser Ausführung zurückgegeben werden sollten, sind:
[1] "AC" "CC" "AC" "CC" "AC" "CC" "AC"
BearbeiteIch bin mir bewusst, dassregmatches
funktioniert nicht gut mit erfassten Übereinstimmungen, aber wasgena verursacht dieses Verhalten in Regmatches und warum werden keine Ergebnisse zurückgegeben?Ich suche nach einer etwas detaillierten Antwort.
Ist derstringi
undstringr
-Paket kann dies nicht über @ ausführregmatches
?
Bitte zögern Sie nicht, meine Antwort zu ergänzen oder eine andere Problemumgehung zu finden, als ich gefunden habe.