Используйте Regex для извлечения последней строки в тексте - PullRequest
2 голосов
/ 19 июля 2011

Мне нужно извлечь только последнюю строку из многострочной строки с помощью регулярных выражений.Я пытаюсь использовать шаблон SingleLine, например, после @ "\ n (. *?) $", Но, к сожалению, он извлекает текст, начиная со второй строки и заканчивая.Любой намек?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 19 июля 2011

Как насчет

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

Это означает, что соответствует всему, что не является символом перевода строки до конца строки.

Ну, когда я думаю об этом, когда вы не используете модификатор DOTALL, тогда все должно быть в порядке

@"(.*)$"

Без этого модификатора . не соответствует символам новой строки. Так что нет необходимости в \n в начале.

1 голос
/ 19 июля 2011

Попробуйте без RegEx

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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...