2015-04-24 20 views
5

Sto cercando di usare RegEx per leggere del testo dai commenti della Bibbia che alcuni di loro hanno molte citazioni e riferimenti all'interno di parentesi (uno di questi commenti per esempio riporta tutto dice con paragrafi biblici tra parentesi, il che è buono dal punto di vista teologico, ma a fini di lettura e di godimento di una passeggiata mattutina non lo è). Quindi, mi piacerebbe ignorarli (qualunque cosa sia tra parentesi) quando sto ascoltando i molti testi (li seguirò più tardi se ne avrò bisogno).RegEx per ignorare o saltare tutto il testo ei numeri tra parentesi

Questo è un esempio del testo che sto solo facendo fuori in questo momento per l'illustrazione:

La Bibbia insegna chiaramente che Dio ama il mondo intero (vedi: Giovanni 3:16 e OtherBibleBook 1: 3- 7,9), non solo Israele.

Mi piacerebbe sentire solo la seguente frase quando si gioca l'applicazione:

La Bibbia insegna chiaramente che Dio ama il mondo intero, non solo Israele.

Qual è il "motivo" che devo inserire? (Tutti quei personaggi strani che significano qualcosa per i programmatori ma niente per me). Sto usando un'app per Android chiamata @Voice Aloud.

+1

rimpiazzare '(...)' con stringa vuota vale a dire, 'string.replaceAll ("\\ ([^)] * \\)", "") ; ' –

+0

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

+1

L'app ha un'impostazione per le espressioni regolari, o hai intenzione di modificare il suo codice in qualche modo, o ...? –

risposta

1

Se è possibile modificare il testo, il codice o immettere un regEx, ciò che si richiede è abbastanza fattibile!

modificare il testo oppure il codice

Lei avrebbe bisogno di usare qualcosa di simile a questo:

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

La regex qui è \(.*?\). È possibile controllare here che corrisponda a tutto tra parentesi. È quindi possibile utilizzare un modello di sottotitolo per rimuoverlo. A seconda della flayour delle espressioni regolari utilizzate dall'app, probabilmente dovrai usare una cosa specifica - poiché Android è in Java, ti chiederebbe solo la stringa sostitutiva: "".

Se si desidera rimuovere lo spazio prima le parentesi, si può fare questo regex invece:

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

O nel codice Java:

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

Grazie Docteur, proverò il codice regex in @VoiceAloud in Android; VoiceDreamer per ipad; e TextAloud in Win8. Queste app accettano il codice RegEx, ognuna in un modo leggermente diverso. Sono sicuro che funzioneranno in almeno uno di loro. –

0

Dal momento che si sta utilizzando il @Voice Aloud App Android, la maggior parte degli esempi forniti non si applicano in modo pulito alla tua domanda.

Ecco l'RegEx è necessario entrare in Impostazioni "Modifica" discorso della App:

\(See:.*\) 

L'ipotesi è @Voice sta leggendo tutti i riferimenti nel documento, e questo è un tentativo di saltare i riferimenti per migliorare la dettatura.

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

migliori saluti,

Problemi correlati