利用正则表达式进行字符串转换,只保留数字或者文字C#.net
今天做项目,遇到转换问题;需要将“ abc2022 ”转换为2022,int.Parse()里面包含字符型会报错,必须为纯数字才行,显然不适用于这里;int.TryParse()与int.Parse()较为类似,虽然它不会产生异常,转换成功返回true,转化失败返回false,但是它也不能包含字符型,只是相较于前者多加了个处理。
所以我使用了正则表达式来匹配去掉除数字外的所有字符:
string code = "abc2022"; code = Regex.Replace(code, @"\D", ""); //去掉除数字外的所有字符
code的输出结果为:2022
其它情况:
只保留汉字
string code = "abc2022"; code = Regex.Replace(code, @"[^\u4e00-\u9fa5]", ""); //只留汉字
只去掉汉字
string code = "abc2022"; code = Regex.Replace(code, @"[\u4e00-\u9fa5]", ""); //去除汉字
去掉0-9的数字
string code = "abc2022"; code = Regex.Replace(code, "[0-9]", "", RegexOptions.IgnoreCase);//去掉0-9的数字
去掉a-z的字母
string code = "abc2022"; code = Regex.Replace(code, "[a-z]", "", RegexOptions.IgnoreCase);//去掉a-z的字母