2012-05-20 8 views
5

Ecco la mia espressione regolare: Regex r = new Regex("start(.*?)end", RegexOptions.Multiline);C# Regex stringa find tra due stringhe con la nuova linea

Ciò significa che voglio ottenere la roba tra il "start" e "end". Ma il problema è che tra inizio e fine è una nuova riga o \n e la regex non restituisce nulla.

Quindi, come faccio a trovare un'espressione regolare \n?

risposta

5

Il nome dell'opzione Multiline è fuorviante, come è quello della opzione corretta - Singleline:

Regex r = new Regex("start(.*?)end", RegexOptions.Singleline); 

da MSDN, RegexOptions Enumeration:

SingleLine - Specifica la modalità linea singola. Cambia il significato del punto (.) In modo che corrisponda a ogni carattere (invece di ogni carattere tranne \ n).

+0

+1 possiamo fare qualcosa qui per escludere l'inizio e la fine, cioè se voglio ottenere solo i valori tra inizio e fine. – Thunder

1

Includere il RegexOptions.SingleLine che significa che . corrisponde tutto, compreso \n

Regex r = new Regex("start(.*?)end", RegexOptions.Multiline | RegexOptions.SingleLine); 

Vedere http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regexoptions.aspx per maggiori dettagli.

+0

Hmm tutti gli altri dicono che io uso solo singleLine. Importa se aggiungo multiline? – AndroidXTr3meN

+0

Nel tuo caso no, non farà alcuna differenza in entrambi i casi, a meno che tu non stia usando^o $ nella tua espressione regolare. Vedi il documento collegato per la definizione di tutte le enumerazioni. – samjudson

+0

Cosa, se ho più di un inizio ... del testo .... termina le coppie nel mio Input e voglio averli tutti? Esempio: inizio .... testo che voglio ... fine inizio ... un altro testo che voglio ... fine Quando uso SingleLine il puntino corrisponde CR \ LF ma io ottieni solo una partita. – brighty

1

Usa SingleLine invece di multilinea:

Regex r = new Regex("start(.*?)end", RegexOptions.Singleline); 

BTW, RegexBuddy è il vostro prezioso amico (No, non sono connesso di sorta per l'autore, ad eccezione di essere un utente felice) .

Problemi correlati