2011-07-19 17 views
2

正規表現を使用して複数行の文字列の最後の行だけを抽出する必要があります。 @ "\ n(。*?)$"のようにSingleLineパターンを使用しようとしていますが、残念ながら、2行目から始まるテキストを抽出して終了します。何かヒント?Regexを使ってテキストの最後の行を抽出する

ありがとうございます!

+1

あなたはSTRING' 'の' .Split(..) 'メソッドでそれを行うことができますか? – Tocco

+0

私はむしろRegexを使いたいです。私はそれについて考え、実行可能な解決策が出てこない場合は、おそらく私はそれを使用して終了します。 – dcg

+0

"私はむしろ、より複雑で資源集中型のソリューションを使用したいと考えています。 – Oded

答えて

4

何文字列の最後まで改行文字ではない、すべてが一致することを意味し

@"([^\n\r]*)$" 

のようなものについて。私はそれについて考える

さて、あなたはDOTALL修飾子を使用していないときに、これは、この修飾子なしで

@"(.*)$" 

問題ないはず.は改行文字と一致していません。最初は\nの必要はありません。

+0

はい、これは動作します!ありがとう! – dcg

1

は、正規表現で正規表現

string literal = @"I 
am 
the 
best"; //With \n 

string[] lines = literal.Split(new string[] { "\n" }, StringSplitOptions.None); 
string lastLine = lines[lines.Length - 1]; 
Console.WriteLine(lastLine); //Should print "best" 

せずにそれを試してみてください。

Match m = Regex.Match(literal, @"\n*.+$"); 
Console.WriteLine(m.Value); //Should be @"\nbest" 
+0

文字列を分割するのは複雑さの点で優れた解決策ですが、これはOPが尋ねた質問には答えません。 –

+0

@Georgeの質問に答えて編集しました。 – Tocco

+0

はい、2番目のバージョンが機能しました。私はそれが最初に反応したので、他の答えを選択しなければならなかった。ありがとう! – dcg

関連する問題