2017-11-07 7 views
0

Ich bin sehr neu beim Lernen Regex. Ich habe versucht zu verstehen, wie ich Quantifizierer steuern kann, um ein einzelnes Wort aus einer Zeichenkette zu finden. Ich weiß, dass es riesige Ressourcen gibt, aber es ist schwer, einen bestimmten Begriff zu finden, nach dem ich suche.Passende Wörter mit Regex

Was ich gerne wissen würde, ist, wie man das Wort He von der folgenden Zeichenfolge abgleicht? Es wäre besser, wenn ich könnte wissen, wie it auch passen (ich meinte, jedes Positionswort passend):

He found it difficult. 

[a-zA-Z].*? --it's a silly try to match "He" 
+1

Split mit '\ s +' oder '\ W +' und erhalten Sie die "Wörter" durch Indizes. –

Antwort

1

dies 2-Buchstaben-Wort von Raum umgeben oder wenn der Satz mit einem 2-Buchstaben-Wort beginnen In diesem Fall "Er" wird es auch gefunden werden. So werden "Er" und "es" beide gefunden werden.

((..)|(^..)) 

EDIT - mehr in die Tiefe ERKLÄRUNG

für 2-Buchstaben-Wörter zu suchen, verwenden wir. (Punkt) für jedes der 2 Zeichen, also haben wir ".." aber das wird 2 beliebige Zeichen finden, also müssen wir das mit Leerzeichen umgeben, so dass wir nach ".." suchen und somit nur wenn 2 Zeichen umgeben sind durch Räume, wird dies gefunden werden. Aber jetzt haben wir ein neues Problem. Das erste 2-Buchstaben-Wort im Satz hat keinen Leerzeichen davor. also wird es nicht gefunden werden. also fügen wir das | (oder) zu der Expression, um nach dem gleichen Ausdruck zu suchen, außer dass wir diesmal den Anfangsraum durch^ersetzen, um anzuzeigen, ob der Satz mit einem 2-Buchstaben-Wort gefolgt von einem Leerzeichen beginnt, sollte er auch dieses Wort finden. Kurz gesagt, wir finden ".." - ein 2-Wörter-Wort, das vom Raum umgeben ist, und wir finden auch "^ .." zu einem Buchstabenwort am Satzanfang, gefolgt von einem Leerzeichen.

EDIT - BETTER REGEX

eine bessere regex (([a-z][a-z])|(^[a-z][a-z])) da dies nur sein würden, werden nach Worten suchen, wie apposed bis "12", die auch in einem Spiel zur Folge hätte. Diese Regex setzt jedoch voraus, dass Sie suchen, während Sie Groß- und Kleinschreibung ignorieren, andernfalls wird es nicht korrekt funktionieren.

+0

Kein Weg !! Das ist, wonach ich gesucht habe. Ist es möglich, eine oneliner Erklärung zu geben, wie Sie das gemacht haben? Danke vielmals. – shayan

+0

Ich werde meine Antwort bearbeiten, um es besser zu erklären. –

+0

@shayan Ich fügte eine bessere Alternative zu der Antwort hinzu. –