2012-04-04 29 views
1

Ich möchte eine Funktion, die Zeilen aus einer Zeichenfolge zu brechen.Ersetzen mit regulären Ausdruck

zB .: "1" -> "\ n1."

so kann ich einen Code schreiben wie diese

string Input = "1. First option"; 
Input += "2. Second option"; 
Input += "3. Third option"; 

Output = WriteMenu(Input); 

und einen String bekommen wie diese

"1. First option 
\n2. Second option 
\n3. Third option" 

Das Muster wird immer [Nummer] [Punkt] [Leerraum] sein. Es ist kein Problem, wenn die erste Option mit neuer Zeile kam.

+0

Also einfach klar zu sein (weil es die aktuellen Antworten dies übersehen haben scheint): Willst du ** keine CRLF vor der "1."? – slugster

Antwort

4

diesen Kerl gibt einen Schuss

Input = Regex.Replace(Input, @"(?<!^)(\d+\.)", "\n$1") 
+0

Funktioniert perfekt! Vielen Dank :) –

2
Regex rgx = new Regex("(\\d+\\.\\s)"); 
String replaced = rgx.Replace(Input, Environment.NewLine + "$1"); 
1

Ein bisschen kürzer Ausdruck wie dies auch funktionieren würde:

Regex.Replace(Input, @"(?!^)\d+\.", "\n$0") 
Verwandte Themen