我想用字母数字替换字符串的前导和尾随空格。
输入字符串
" New Folder "
(注意:前面有一个空白区域,这个字符串末尾有两个白色空格)
输出
我的愿望输出字符串"_New Folder__"
(输出字符串在前面有一个下划线,在末尾有两个下划线。)
答案 0 :(得分:4)
一种解决方案是使用回调:
s = Regex.Replace(s, @"^\s+|\s+$", match => match.Value.Replace(' ', '_'));
或使用环视(有点棘手):
s = Regex.Replace(s, @"(?<=^\s*)\s|\s(?=\s*$)", "_");
答案 1 :(得分:1)
你也可以选择非正则表达式解决方案,但我不确定它是不是很好:
StringBuilder sb = new StringBuilder(s);
int length = sb.Length;
for (int postion = 0; (postion < length) && (sb[postion] == ' '); postion++)
sb[postion] = '_';
for (int postion = length - 1; (postion > 0) && (sb[postion] == ' '); postion--)
sb[postion] = '_';
s = sb.ToString();