Suche…


Einführung

In diesem Dokument werden die Grundlagen für reguläre Ausdrücke, wie sie in R verwendet werden, vorgestellt. Weitere Informationen zur Syntax für reguläre Ausdrücke von R finden Sie unter " ?regex . Eine umfassende Liste der Operatoren regulärer Ausdrücke finden Sie in diesem ICU-Handbuch zu regulären Ausdrücken .

Verwenden Sie `grep`, um eine Zeichenfolge in einem Zeichenvektor zu finden

# General syntax:   
# grep(<pattern>, <character vector>)

mystring <- c('The number 5',
              'The number 8',
              '1 is the loneliest number',
              'Company, 3 is',
              'Git SSH tag is [email protected]',
              'My personal site is www.personal.org',
              'path/to/my/file')

grep('5', mystring)
# [1] 1
grep('@', mystring)
# [1] 5
grep('number', mystring)
# [1] 1 2 3

x|y bedeutet "x" oder "y" suchen

grep('5|8', mystring)
# [1] 1 2
grep('com|org', mystring)
# [1] 5 6

. ist ein Sonderzeichen in Regex. Es bedeutet "mit jedem Zeichen übereinstimmen"

grep('The number .', mystring)
# [1] 1 2

Seien Sie vorsichtig, wenn Sie versuchen, Punkte zusammenzubringen!

tricky <- c('www.personal.org', 'My friend is a cyborg')
grep('.org', tricky)
# [1] 1 2

Um ein Literalzeichen zu finden, müssen Sie die Zeichenfolge mit einem Backslash ( \ ) versehen. R versucht jedoch beim Erstellen von Zeichenfolgen nach Escape-Zeichen zu suchen. Daher müssen Sie den Backslash selbst mit Escapezeichen versehen (dh Sie müssen reguläre Ausdrücke doppelt maskieren .)

grep('\.org', tricky)
# Error: '\.' is an unrecognized escape in character string starting "'\."
grep('\\.org', tricky)
# [1] 1

Wenn Sie mit einem von mehreren Zeichen übereinstimmen möchten, können Sie diese Zeichen in Klammern einschließen ( [] ).

grep('[13]', mystring)
# [1] 3 4
grep('[@/]', mystring)
# [1] 5 7

Es kann nützlich sein, Zeichenfolgen anzugeben. Beispiel: [0-4] 0, 1, 2, 3 oder 4, [AZ] wird mit Großbuchstaben, [Az] mit Groß- oder Kleinbuchstaben und [A-z0-9] mit beliebigen Buchstaben übereinstimmen Buchstaben oder Zahlen (dh alle alphanumerischen Zeichen)

grep('[0-4]', mystring)
# [1] 3 4
grep('[A-Z]', mystring)
# [1] 1 2 4 5 6

R hat auch mehrere Shortcut-Klassen, die in Klammern verwendet werden können. Zum Beispiel ist [:lower:] eine Abkürzung für az , [:upper:] ist eine Abkürzung für AZ , [:alpha:] ist Az , [:digit:] ist 0-9 und [:alnum:] ist A-z0-9 . Beachten Sie, dass diese ganzen Ausdrücke in Klammern verwendet werden müssen. Um beispielsweise eine einzelne Ziffer abzugleichen, können Sie [[:digit:]] (beachten Sie die doppelten Klammern). Als weiteres Beispiel [@[:digit:]/] mit den Zeichen @ , / oder 0-9 überein.

grep('[[:digit:]]', mystring)
# [1] 1 2 3 4
grep('[@[:digit:]/]', mystring)
# [1] 1 2 3 4 5 7

Klammern können auch verwendet werden, um ein Match mit einem Karat ( ^ ) zu negieren. Zum Beispiel stimmt [^5] mit jedem anderen Zeichen als "5" überein.

grep('The number [^5]', mystring)
# [1] 2


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow