2015-04-24 16 views
5

Ich versuche RegEx zu verwenden, um Text aus Bibelkommentaren zu lesen, die einige Zitate und Verweise in Klammern haben (einer dieser Kommentare zum Beispiel unterstützt fast alles) er sagt mit Bibelabsätzen in Klammern, was theologisch gut ist, aber zum Zweck des Lesens und Genießens ist etwas Morgengehen nicht. Daher möchte ich sie ignorieren (was immer in Klammern steht), wenn ich mir die vielen Texte anhöre (ich werde ihnen später folgen, wenn es nötig ist).RegEx zum Ignorieren oder Überspringen aller Text und Zahlen in Klammern

Dies ist ein Beispiel für den Text, den ich bin gerade jetzt zur Illustration Ausfertigung:

Die Bibel lehrt klar, dass Gott die ganze Welt liebt (Siehe: Johannes 3,16 und OtherBibleBook 1: 3- 7,9), nicht nur Israel.

Ich möchte nur den folgenden Satz hören, wenn die App zu spielen:

Die Bibel lehrt klar, dass Gott die ganze Welt liebt, nicht nur Israel.

Was ist das "Muster", das ich eingeben muss? (All diese seltsamen Charaktere, die Programmierer etwas bedeuten, aber nichts für mich). Ich verwende eine Android-App namens @Voice Aloud.

+1

ersetzen '(...)' mit leeren String dh 'string.replaceAll ("\\ ([^)] * \\)", "") ; ' –

+0

Oder' \\ (. *? \\) '. – Xufox

+1

Hat die App eine Einstellung für Regexes oder möchten Sie ihren Code irgendwie ändern, oder ...? –

Antwort

1

Wenn Sie den Text oder den Code ändern oder eine RegEx eingeben können, ist das, was Sie verlangen, ziemlich machbar!

Ändern Sie den Text oder die Code

Sie benötigen würde wie folgt verwenden:

String s = "The Bible teaches clearly that God loves the whole world (See: John 3:16 and OtherBibleBook 1:3-7,9), not just Israel." 

string.replaceAll("\\(.*?\\)", ""); 

//ouput : The Bible teaches clearly that God loves the whole world , not just Israel. 

INPUT A REGEX

Die hier regex \(.*?\) ist. Sie können überprüfen, here, dass alles in Klammern übereinstimmt. Sie können dann ein Ersatzmuster verwenden, um es zu entfernen. Je nachdem, wie viele Regex-Ausdrücke die App verwendet, wirst du wahrscheinlich eine bestimmte Sache verwenden müssen - da Android in Java ist, würde es dich nur nach dem Ersatz-String fragen: "".

Wenn Sie den Platz vor den Klammern entfernen möchten, können Sie diese Regex tun statt:

\s{0,1}\(.*?\) 

Oder im Java-Code:

string.replaceAll("\\s{0,1}\\(.*?\\)",""); 
+0

Vielen Dank Docteur, ich werde den Regex-Code in @VoiceAloud in Android versuchen; VoiceDreamer für iPad; und TextAloud in Win8. Diese Apps akzeptieren RegEx-Code, jeder auf eine etwas andere Art und Weise. Ich bin mir sicher, dass sie in mindestens einem von ihnen arbeiten werden. –

0

Da Sie die @Voice Aloud verwenden Android App, die meisten Beispiele werden nicht sauber auf Ihre Frage angewendet.

Hier ist die RegEx Sie in den „Edit Rede“ Einstellungen der App eingeben müssen:

\(See:.*\) 

Die Annahme ist @Voice wird alle Referenzen in Ihrem Dokument zu lesen und dies ist ein Versuch, Überspringen Sie die Referenzen, um das Diktat zu verbessern.

I have also included an example screenshot using @Voice v7.8.6

Mit besten Grüßen,

Verwandte Themen