如何使用正则表达式去除字符串首尾的换行符、空格等指定字符?
字符串首尾指定字符清理实现方案
方案1:使用.NET内置Trim()方法(推荐)
这个方法无需引入正则库,逻辑简单直观,且不会误删中间字符,完全匹配需求:
// 原始字符串 string rawContent = "\r\n \nTitle\r\nText on the next row\r\n\r\nSignature\r\n"; // 指定要从首尾移除的字符集合:回车、换行、空格 char[] charsToTrim = {'\r', '\n', ' '}; // 执行清理 string result = rawContent.Trim(charsToTrim);
Trim()方法的特性就是仅移除字符串开头和结尾匹配的指定字符,中间出现的同类字符会完整保留。
方案2:正则实现
如果你必须使用正则完成,可使用如下规则,注意不要加RegexOptions.Multiline参数,避免误匹配每一行的首尾:
using System.Text.RegularExpressions; string rawContent = "\r\n \nTitle\r\nText on the next row\r\n\r\nSignature\r\n"; // 正则规则:匹配整个字符串开头/结尾的所有回车、换行、空格 Regex trimReg = new Regex(@"^[\r\n ]+|[\r\n ]+$"); string result = trimReg.Replace(rawContent, string.Empty);
原正则失效原因
你之前编写的规则仅匹配了开头的连续\r\n,漏匹配了开头的空格、单独\n,也没有覆盖结尾需要清理的字符,因此无法满足需求。
内容的提问来源于stack exchange,提问作者vr552
相关产品推荐
相关产品推荐

