Ich versuche, eine Regex zu machen, die in einer Ausnahme verwendet wird.RegEx-Ausdruck zur Behandlung mehrerer Bedingungen zum Brechen von Sätzen
Daher muss es für diese Sätze false zurück (die führenden Ziffern sind in den Strings enthalten):
3.{17} this is italics and should break.{18}
4. this is another sentence and should break.
5. This is another sentence and should break.
Und es muss zurückkehren Wahr für diese:
There are 2 reasons for this 1. you are here and 2. you are communicating.
Is it 2? they wanted to know.
1 digit at the beginning but with 1. with a period should return true.
Mit anderen Worten, wenn der Anfang der Zeichenfolge eine Zahl gefolgt von einem Punkt ist, sollte es false zurück (auch wenn "\{\d+\}"
folgt optional) und das Zeichen, das dem Leerzeichen folgt, spielt keine Rolle. Und es muss true zurückgeben, wenn die Zahl und der Punkt (oder !
oder ?
) in den Satz eingebettet ist, gefolgt von einem Kleinbuchstaben, in anderen Fällen muss es falsch sein.
Als weitere Anmerkung: Dies geht in eine Java-Eigenschaftendatei, und der Wert wird dann an eine perl5 Regex-Engine übergeben, um den fehlerhaften Text zurückzugeben.
Ich versuche, es in einem Ausdruck auszudrücken, aber irgendwie kann ich es nicht richtig machen. Dies ist es, was mit bisher kommen:
^([^0-9\.]+[\.]|
[^\.!\?]*[\?!]+[\?!\.]+|
[0-9]+[^\?!\.]+[\?!\.]+|
[^0-9]*[0-9]+[^\?!\.]+[\?!\.]+)
(\{\d+\}[\u0020\u00A0]|
[\u0020\u00A0]*)[a-z]
ich in einer Sackgasse zu angekommen scheinen und sehen nicht, was ich falsch haben.
Danke für jeden Hinweis.
Update: Ein einfacheres Format mit Vorgriff: ^(?!\d+\.)[^.!?]*[.!?]+(\{\d+\}\s|\s*)\p{Ll}
basierend auf den Kommentaren.
Haben die Sätze auch Anführungszeichen um sie herum und haben immer ein Leerzeichen nach '.'? –
@ l'L'l - keine Anführungszeichen, und Leerzeichen ja nach dem '.' oder'! 'Oder'? 'Ich habe die Beispiele – ib11
Ich verstehe die Frage nicht. Die Beispielzeichenfolgen können mit "^ \ D" verglichen werden. – melpomene