2016-04-30 11 views
3

Ich bin völlig neu in Regex. . Ich möchte nur wissen, ob dies möglich ist (tut mir leid, wenn die Erklärung verwirrend ist oder zu kompliziert) Sag mal, ich will nur diese bestimmte Position in fett finden und ersetzen:Regex für mehrere verschiedene Wörter, zwischen weißen Räumen

„Wie diskutiert In Kapitel 1 können die Benutzer von Abschlüssen als Ressourcenanbieter kategorisiert werden (Leerzeichen) (Leerzeichen) Benutzer und Entscheidungsfindung (Leerzeichen) (Leerzeichen) Ein Beispiel dafür (Leerzeichen) (Leerzeichen) Art und Zweck von financial analysis (space) (space) Wir haben festgestellt, dass die Finanzanalyse die ausgewiesenen Zahlen in den Jahresabschlüssen relativ ausdrückt. "

dazu:

„Wie in Kapitel 1 diskutiert, können die Nutzer von Abschlüssen als Ressourcenanbieter kategorisiert werden.
(neue Zeile) Benutzer und Entscheidungsfindung (Registerkarte Leerzeichen) Ein Beispiel dafür.
(neue Zeile) Art und Zweck der Finanzanalyse (Tab-Space) Wir haben festgestellt, dass die Finanzanalyse mvolves die ausgewiesenen Zahlen in den Abschlüssen relativ ausdrückt. "

Als mein Wissen über regex zur Zeit begrenzt ist, versuche ich, es zu brechen zu 2 Teilen nach unten:


1. zu finden". (Raum) (Raum) Nature ":
[(.)] \ N \ n [(AZ)] \ w +
auf \ n $ &


2. zu finden" Analyse (Raum) (Raum) „Wir:
[(az)] \ w + \ s \ s [(AZ)]

So ??, meine Frage ist, dass es möglich, nur zu Definieren Sie 1 Regex für
. (Leerzeichen) (Leerzeichen) Benutzer und Entscheidungsfindung (Leerzeichen) (Leerzeichen) Ein
. (Leerzeichen) (Leerzeichen) Art und Zweck der Finanzanalyse (Leerzeichen) (Leerzeichen) Wir

und ersetzen Sie es durch das obige Beispiel?

Vielen Dank!

PS. Der Grund für diese seltsame Bearbeitung ist, diese auf die ANKI-Flashcard-Software als txt ohne weitere Bearbeitung hochzuladen.
Meine aktuelle Methode kann ziemlich anstrengend sein, wenn ich den ganzen Text von einem dicken Lehrbuch bearbeiten soll (das mehr als 1000 Bearbeitungen pro Kapitel x20 oder so Kapitel x5 Lehrbücher und mehr enthalten kann).
fyi, in anki und einigen anderen Flashcard-Software, Tab ist der Feldtrenner zwischen der Front/Frage und der Rückseite/Antwort.
Das doppelte Leerzeichen [] [] wird verwendet, um eine bestimmte Überschrift von einem einzelnen Leerzeichen zu trennen, wenn Suchen und Ersetzen verwendet wird. was vorher von mir selbst vorgegeben wurde.
Die neue Zeile (\ n) dient zum Hinzufügen neuer separater Flashcards.
Anki (und mehrere andere Flashcard-Software) unterstützt HTML, also habe ich in der Regel mehrere Karten hinzugefügt, indem Sie den Text aus pdf mit Notepad ++ und Regex suchen und ersetzen mehrere Überschrift oder erstes Wort eines Satzes zu passen mit der Frage/Frontteil von anki Flashcard während der Rest zum Antwortteil wird; und dann importiere es nach anki. Wenn es möglich ist, den gesamten Findungsteil zu automatisieren, kann ich eine Menge Zeit sparen!

+0

Welche Sprache oder welches Werkzeug benutzen Sie? Ich denke deine korrekte Antwort wird davon abhängig sein. –

+1

So etwas wie: '[] {2}'? https://regex101.com/r/nR0xC8/1 Wenn ich Ihr Problem richtig verstanden habe, sollten zwei aufeinanderfolgende Leerzeichen durch einen Zeilenumbruch ersetzt werden. – Jan

+0

Danke für die schnelle Antwort. Ich experimentiere immer noch mit regexr, notepad ++, vim (ich weiß nicht wie ich das benutze), jsfiddle, aber ich bin offen für jeden anderen Editor. – pagkly

Antwort

0

Ich sehe Sie versuchen, Wortkombinationen srting mit einem Großbuchstaben, mit einem Leerzeichen zwischen den Wörtern und zwei Leerzeichen eingeschlossen. Hier

ist ein regfex, die diese Bedingungen erfüllt:

/[^\S\r\n]{2,}[A-Z]\w*(?:[^\S\r\n]\w+)*[^\S\r\n]{2,}/g 

Siehe regex demo (ersetzen mit \n$&\t\t)

Beachten Sie, dass [\w ]{1,} ein Wortzeichen oder einen Raum passen 1+ mal wieder und erlauben mehr als 1 Leerzeichen zwischen Wörtern. Es kann jedoch gut sein, wenn Sie die letzte 2-Platz-Chunk in einer Zeile übereinstimmen müssen. Beachten Sie, dass Sie nach dem zweiten [^\S\r\n] im obigen Muster eine + hinzufügen müssen.