2010-03-24 4 views
0

J'ai une chaîne:Parse partie du texte du modèle de regex

[\n['-','some text what\rcontains\nnewlines'],\n\n 

essayant d'analyser:

Regex.Split(@"[\n['-','some text what contains newlines'],\n\n", @"\[\n\['(.*)','(.*)'],.*"); 

mais le tableau de retour de scission semble être nulle

je dois obtenir une partie du texte: "du texte qui contient des retours à la ligne"

+0

La chaîne comporte-t-elle des caractères de nouvelle ligne réels ou les deux caractères '\ n'? – SLaks

Répondre

2

Vous recherchez la fonction Match, qui donnera les groupes de capture.

Par exemple:

Regex.Match("[\n['-','some text what\rcontains\nnewlines'],\n\n", @"\[\n\['(.*)','(.*)'],.*", RegexOptions.Singleline).Groups[2].Value 

RegexOptions.Singleline est nécessaire pour forcer . à correspondre \n.

1

Le caractère générique '.' ne reconnaît pas les nouvelles lignes par défaut. Utilisez RegexOptions.Singleline pour spécifier que la période doit correspondre aux nouvelles lignes.

Consultez aussi Expresso, un excellent outil pour travailler avec C# Regex.

Questions connexes