显而易见的尝试是:
Regex.Replace(input, @".$", "X", RegexOptions.Singleline);
Run Code Online (Sandbox Code Playgroud)
但这并不总是有效.考虑一下这个字符串\r\n\r\n
- 上面会产生令人惊讶的结果\r\nXX
.人们可能期望从阅读MSDN(下多行),其$
应该只是在整个字符串的结尾匹配,但显然$
实际上是指"比赛在字符串的结尾或者在\n
刚刚字符串结束前".
什么可能是匹配任意字符串的最后一个字符的正确方法?
.NET支持\z
令牌,它始终匹配字符串的结尾:
Regex.Replace(input, @".\z", "X", RegexOptions.Singleline);
Run Code Online (Sandbox Code Playgroud)