2013-10-30 5 views
5

Ich habe mehrere Fragen gefunden, die darauf ansprechen, aber keine, die darauf zu antworten scheinen. Ich versuche eine Regex zu erstellen, die es mir ermöglicht, richtige Substantive in einer Textgruppe zu identifizieren.Regex finde richtige Substantive oder Phrasen, die NICHT das erste Wort in einem Satz sind

Ich definiere ein Proper Substantiv wie folgt: Ein Wort oder eine Gruppe von Wörtern, die mit einem Großbuchstaben beginnen, sind länger als 1 Ziffer (um Dinge wie I, A usw. auszuschließen), und sind NICHT das erste Wort von ein neuer Satz.

Also, im folgenden Text

"Susan Dow im Holiday Inn am Donnerstag war. Sie traf Tom und Shirley Temple an der Bar, wo sie Green Eggs and Ham bestellt"

Ich mag die zurück folgenden

Holiday Inn Donnerstag Tom Shirley Temple Green Eggs Ham

Gerade jetzt, [A-Z]{1,1}[a-z]*([\s][A-Z]{1,1}[a-z]*)* ist was ich habe, aber es gibt Susan Dow und She zusätzlich zu den oben aufgeführten zurück. Wie kann ich mein . Look-up zum Funktionieren bringen?

Antwort

3

können Sie verwenden:

(?<!^|\. |\. )[A-Z][a-z]+ 

pro diesem rubular

Update: Integriert die beiden negativen Blicke abwechselnd verwenden. Außerdem wird nach zwei Leerzeichen zwischen Sätzen gesucht. Beachten Sie, dass Wiederholungsoperatoren nicht in negativen Lookbehinds pro Noten in http://www.regular-expressions.info/lookaround.html

verwendet werden können
Verwandte Themen