如何用正则表达式移除字符串开头的数字及点号?C#技术求助
解决方案
你的问题出在正则表达式的匹配逻辑上:原正则^\d+[\.]*只能匹配一段连续数字加上后续的零个或多个点,无法处理开头数字和点交替出现的情况(比如6.86.7.72022这种结构)。
修正后的正则表达式
使用^[\d.]+,它表示匹配字符串开头一个或多个连续的数字(\d)或点号(.),正好覆盖你需要移除的所有开头字符。
修正后的完整代码
using System.Text.RegularExpressions; static void Main(string[] args) { var str = @"6.86.7.72022年10月缴纳的纳税证明"; str = str.RemoveBeginDigit(); Console.WriteLine(str); // 输出:年10月缴纳的纳税证明 } public static string RemoveBeginDigit(this string str) { return Regex.Replace(str, @"^[\d.]+", "", RegexOptions.None); }
说明
^:锚定字符串的开头,确保只替换开头的目标字符[\d.]:匹配任意一个数字(0-9)或点号+:表示匹配前面的字符(数字或点)至少一次,连续匹配直到遇到非数字非点的字符
内容的提问来源于stack exchange,提问作者user23353507
相关产品推荐
相关产品推荐

