R-String entfernt Interpunktion bei der Aufteilung

8

Angenommen, ich habe eine Zeichenfolge, zum Beispiel die folgende.

%Vor%

Ich muss nur die Interpunktion !?. und die folgenden Leerzeichen trennen und die Interpunktion beibehalten.

Dadurch werden die Interpunktionszeichen entfernt und führende Leerzeichen in den Teilbereichen beibehalten, obwohl

%Vor%

Wie kann ich Sätze trennen, die die Interpunktion verlassen?

    
paulie.jvenuez 01.11.2013, 03:06
quelle

5 Antworten

14

Sie können PCRE mit perl=TRUE einschalten und eine Lookbehind-Assertion verwenden.

%Vor%

Regulärer Ausdruck:

%Vor%

Live-Demo

    
hwnd 01.11.2013, 03:12
quelle
5

Die Funktion sentSplit im qdap-Paket wurde nur für diese Aufgabe erstellt:

%Vor%     
Tyler Rinker 01.11.2013 03:21
quelle
2

Schauen Sie sich diese Frage an. Zeichenklassen wie [:space:] werden innerhalb von Klammerausdrücken definiert. Sie müssen diese also in Klammern setzen. Probieren Sie:

%Vor%

Dadurch werden die führenden Leerzeichen entfernt. Um die Interpunktion zu erhalten, verwenden Sie eine positive Lookbehind-Assertion mit perl = TRUE :

%Vor%     
Blue Magister 01.11.2013 03:46
quelle
1

Sie könnten die Leerzeichen nach Satzzeichen durch eine Zeichenfolge ersetzen, z. B. zzzzz , und dann auf diese Zeichenfolge aufteilen.

%Vor%

Dabei steht in der Ersetzungszeichenfolge für den eingeklammerten Unterausdruck des Musters.

    
ndr 01.11.2013 03:59
quelle
1

Ab der qdap Version 1.1.0 Sie können die Funktion sent_detect wie folgt verwenden:

%Vor%     
Tyler Rinker 26.02.2014 23:18
quelle

Tags und Links