2017-04-18 4 views
0

Wenn ich den folgenden Befehl verwenden, um meinen Zielstring pxgrep Zeichenfolge aus der Datei in R

x <- grep('px', readLines("file.txt")) 

[]an$px 

[1] 2 12 # x returns 2 and 12th line 

grep Aber wenn ich will die Zeichenfolge als [1]$px

x <- grep('[1]$px', readLines("file.txt")) 

x kehrt grep integer(0)

Meine Frage ist, wie bekomme ich 2 und 12 als auch integer(0) Wenn meine Zielzeichenfolge [1]$px ist?

+0

Bitte den Text Ihrer Datei (oder einen Teil davon) ausschneiden und einfügen, anstatt einen Bildlink zu posten! – Spacedman

Antwort

3

Klammern haben in regulären Ausdrücken eine besondere Bedeutung. Fügen Sie fixed=TRUE zu Ihren Parametern in grep hinzu, um das Muster so zu interpretieren, wie es ist. Die andere Option besteht darin, den Klammern zu entkommen, aber wenn Sie nicht die volle Leistung von regulären Ausdrücken benötigen und nur nach einer bestimmten Zeichenfolge suchen möchten, ist die Verwendung der Option fixed=TRUE die bessere Option.

x <- grep('[[1]]$px', readLines("file.txt"), fixed = TRUE)