Dank der answer by Wiktor Stribiżew und seiner ausführlichen Diskussion habe ich eine RegEx (\p{L}+(?:\s+\p{L}+)*)
, die Zeichen (auch Unicode) bis zu z. ein Punkt (.) und ein Semikolon (;). Aber ich möchte einen Punkt nur dann fangen, wenn ein einzelnes Zeichen (es könnte Unicode sein) davor und einige Zeichen dahinter stehen. Lass mich dir ein paar Beispiele geben. RegEx fängt richtig z.B .:RegEx: Erlaube für einen einzelnen Punkt nach einem möglichen Buchstaben
WOJCIECH T ZAŁUSKA
WOJCIECH ZAŁUSKA
WOJCIECH Ted ZAŁUSKA
aber es funktioniert nicht richtig fangen:
WOJCIECH T. ZAŁUSKA
ich alles, aber der Punkt (WOJCIECH T Załuska) bekommen, und ich möchte auch diesen Punkt zu fangen.
Also, ich möchte Strings wie die oben zu fangen. Weitere Beispiele von dem, was ich brauche:
Ted J. Knox
Chris Jay J. Nick
In Strings, in denen es mehrere Dots gibt, sollte nur die erste berücksichtigt werden. Lassen Sie mich Ihnen ein Beispiel dafür geben, was ich nicht gerne habe. Betrachten Sie die folgende Zeichenfolge:
WOJCIECH T. ZAŁUSKA. Adam
Nur WOJCIECH T. ZAŁUSKA
gefangen werden sollte. Ich habe versucht (\p{L}+(?:\s+\p{L}+\.)*)
, aber es fängt mehr als einen Punkt und haben mehr Mängel.
sind eigenständige diese Strings? Oder in einem markierten Text? –
Nun, wenn der Punkt nur nach dem zweiten "Wort" kommen kann, verwenden Sie ['\ p {L} + (?: \ S + \ p {L} + \.)? (?: \ S + \ p {L} +) + '] (https://regex101.com/r/bN6oZ9/1). –
Sehr geehrte @ WiktorStribiżew Sie sind Standalone: eine Zeichenfolge = eine RegEx. Ihre RegEx ist so perfekt wie immer. Ich kann nicht sagen, wie dankbar ich für deine fortwährende Hilfe bin. – menteith