正则表达式实现字符串开头短横线加空格及还原,附非正则代码
字符串转换:正则与非正则实现方案
需求说明
原始输入字符串:
var input = "---Three dashes a-b-c-d";
需要转换为目标输出:
var output = "- - - Three dashes a-b-c-d";
同时要实现反向转换(将上述输出还原为原始输入),以下是具体实现方案:
正则实现:输入转输出
通过正则匹配字符串开头的连续短横线,将每个短横线用空格分隔:
using System.Text.RegularExpressions; var input = "---Three dashes a-b-c-d"; var output = Regex.Replace(input, @"^(-+)", match => string.Join(" ", match.Value.ToCharArray()));
原理:^(-+)匹配开头所有连续的短横线,通过匹配器将短横线数组用空格拼接,实现---到- - -的转换。
正则实现:输出还原为原始输入
匹配开头的- 组合,移除其中的空格恢复连续短横线:
using System.Text.RegularExpressions; var output = "- - - Three dashes a-b-c-d"; var input = Regex.Replace(output, @"^(- )+", match => match.Value.Replace(" ", ""));
原理:^(- )+匹配开头所有- 的组合,将匹配内容中的空格移除,还原为连续的---。
非正则实现:输入转输出
通过循环遍历开头的短横线,逐个添加空格后拼接剩余内容:
var input = "---Three dashes a-b-c-d"; var output = string.Empty; var i = 0; while (i < input.Length && input[i] == '-') { output += "- "; i++; } output += input.Substring(i);
内容的提问来源于stack exchange,提问作者MicMit
相关产品推荐
相关产品推荐

