2016-04-15 21 views
1

Ich nehme einen Kurs online, um sich mit R vertraut zu machen. Ich habe einige Schwierigkeiten/Verwirrung, wenn ich eine der Übungen durchführe.Was ist ein Escape-Zeichen

emails <- c("[email protected]", "[email protected]", "[email protected]", "invalid.edu", "[email protected]", "[email protected]") 

**hits <- grep(pattern = "@.*\\.edu$", x = emails)** 

Kann mir jemand freundlicherweise Ausfall- (erklären) der Teil des Codes, der in Anführungszeichen ist ("@. * \. Edu $")? Insbesondere verstehe ich nicht den Zweck der Gegenreaktion? Nach einigen Nachforschungen wurde mir klar, dass "\" ein Escape-Zeichen ist. Aber ich verstehe nicht, zu welchem ​​Zweck es im oben genannten (fett gedruckten) Code verwendet wird. Danke im Voraus.

+5

In einem regulären Ausdruck hat das Punktzeichen '.' eine besondere Bedeutung. Wenn Sie auf das Punktzeichen im Muster, das Sie abgleichen möchten, verweisen möchten, verwenden Sie ein Escape-Zeichen, um dem regulären Ausdrucksparser mitzuteilen, dass Sie sich auf einen Punkt und nicht auf das Punktzeichen beziehen, das er kennt (die verwendet wird, um ein beliebiges Zeichen darzustellen). –

Antwort

1

Dies ist ein regulärer Ausdruck, der nach bestimmten Elementen einer E-Mail-Adresse sucht. Wenn Sie etwas in einem Regex-Ausdruck vermeiden, liegt das daran, dass reservierte Zeichen vorhanden sind, die Sie abgleichen möchten, die Sie jedoch ohne ein wenig Formatierung nicht verwenden können. Einige häufig reservierte Zeichen sind. * [(])

Also in Ihrem Ausdruck ist hier eine Aufschlüsselung dessen, was passiert.

Sie können einen der vielen Regex-Tester online verwenden, um mit diesen Dingen mehr zu experimentieren. Here's ein guter