如何通过单行Regex.Replace合并多正则模式完成字符串替换与删除?
当然可以!一次
Regex.Replace 就能搞定所有操作 你完全不需要多次调用Regex.Replace,只需要用一个匹配所有目标字符的正则表达式,再搭配**匹配评估器(MatchEvaluator)**来根据不同的匹配内容返回对应的替换值就行。
具体实现(以C#为例)
string equation = "1,250 ×3.5÷ 12"; string processedEquation = Regex.Replace( equation, @"[, ×÷]", // 匹配逗号、空格、×、÷这四个目标字符 match => match.Value switch { "," => "", // 删除逗号 " " => "", // 删除空格 "×" => "*", // 替换×为* "÷" => "/" // 替换÷为/ } ); Console.WriteLine(processedEquation); // 输出:1250*3.5/12
原理说明
- 正则模式:
[, ×÷]是一个字符集,会匹配字符串中任意一个逗号、空格、×或÷; - 匹配评估器:通过Lambda表达式判断每个匹配到的字符,返回对应的替换结果——逗号和空格直接替换为空(相当于删除),×和÷替换成对应的运算符号;
- 整个过程只需要遍历字符串一次,比多次调用
Regex.Replace效率更高,逻辑也更集中。
内容的提问来源于stack exchange,提问作者EsAMe
相关产品推荐
相关产品推荐

