Как мне сопоставить последний символ в произвольной строке с помощью регулярных выражений C #? - PullRequest
2 голосов
/ 18 ноября 2009

Очевидная попытка:

Regex.Replace(input, @".$", "X", RegexOptions.Singleline);

Это не всегда работает, хотя. Рассмотрим строку \r\n\r\n - приведенное выше дает удивительный результат \r\nXX. При чтении MSDN (ниже Multiline ) можно ожидать, что $ должно совпадать только в конце всей строки, но, очевидно, $ фактически означает "совпадение в конце строки" или в \n непосредственно перед концом строки ".

Каким может быть правильный способ сопоставления последнего символа произвольной строки?

1 Ответ

8 голосов
/ 18 ноября 2009

.NET поддерживает токен \z, который всегда совпадает с концом строки:

Regex.Replace(input, @".\z", "X", RegexOptions.Singleline);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...