Regulären Ausdruck zu schnappen Wort vor einem bestimmten Zeichen R Perl
Ich brauche, um die Worte vor und nach einem einzigartigen Charakter (in meinem Fall: &) in einer Zeichenfolge in R.
Ich brauche, um 'wort1' so etwas wie dieses:
"...etwas, das etwas wort1 & wort2 etwas..."
Ich kann das Wort, nachdem Sie mit einem regulären Perl-Ausdruck in R: (?<=& )[^ ]*(?= )
(Es verhält sich scheinbar so, wie ich möchte. Ich habe es von kämmen Antworten, die ich gefunden auf dieser Seite)
Nun benötige ich, um das Wort vor der &
symbol. Die Länge der Wörter ändern und die Anzahl der anderen vorhergehenden Worte, und auch die Räume verändern. Word konnte man Buchstaben und zahlen, nur gebunden durch Leerzeichen auf beiden Seiten.
InformationsquelleAutor GregS | 2013-02-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
(\S+)\s*&\s*(\S+)
dann die Worte, die beide Seiten&
erfasst werden. Dies ermöglicht optionalen Leerzeichen rund um das kaufmännische und-Zeichen.Müssen Sie die doppelten backslashes in einem R-Zeichenfolge und verwenden Sie die
regexec
undregmatches
Funktionen zum anwenden der Muster und extrahieren Sie die übereinstimmenden Teilstrings.Nun
words
ist ein ein-element-Liste hält eine drei-Element-Vektor: der gesamte gematchte string, gefolgt von der ersten und zweiten Rückverweise. Sowords[[1]][2]
istword1
undwords[[1]][3]
istword2
.Der einzige Grund, der mir einfällt, ist, wenn Sie die Textverarbeitung, die verwendet die no-break space
"\x{A0}"
. Sie können das Problem beheben, dass durch die Verwendung([^\s\xA0]+)\s*&\s*([^\s\xA0]+)
statt. Beachten Sie, dass die Perl-syntax. Ich weiß sehr wenig über R und kann oder kann nicht der richtige Weg, um ein Zeichen mit seinem code zeigen.Die ersten Kleinbuchstaben s muss ein backslash verdoppelt oder R, wird ein Fehler ausgelöst. Ansonsten ist dies genau die Antwort, ich brauche für ein Projekt!
InformationsquelleAutor Borodin
Wird mit etwas, das ist ein Wort-Zeichen zwischen
&
Symbole. Verwendet ein positive lookbehind und der eine positive lookahead.InformationsquelleAutor Martyn Shutt
Dem Wort erfasst werden, um die in der Gruppe 1. Dies ist ein zurückhaltendes Spiel enthalten in eine beliebige Zeichenfolge, umgeben von zwei Grenzen; nach der zweiten Grenze
&
.InformationsquelleAutor Explosion Pills
Es kann getan werden, mit einer relativ einfachen regulären Ausdruck mit
strapplyc
im gsubfn Paket. Vorausgesetzts
ist dein string:InformationsquelleAutor G. Grothendieck