c# 替换所有中文、标点符号,全角转半角
2016-01-14 15:13
1006 查看
private void btnStart_Click(object sender, EventArgs e) { var srcWords = ToDBC(txtSrc.Text.Trim()); var placeStr = Regex.Replace(srcWords, @"([\p{P}*])", " "); placeStr = Regex.Replace(placeStr,@"([\u4e00-\u9fa5])", ""); var splitWords = placeStr.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries); var words = splitWords.ToList().Select(item => { if (item.Length > 0) { var first = item.Substring(0, 1).ToUpper(); var last = ""; if (item.Length > 2) { last = item.Substring(1, item.Length-1); } return first + last; } return ""; }); var joinWords = string.Join(" ", words); Clipboard.SetText(joinWords); txtDes.Text = AppendWords(joinWords); MessageBox.Show("已将替换后的字符串复制到粘贴板"); } /// <summary> /// 替换所有的中文及标点符号 /// </summary> /// <param name="str"></param> /// <returns></returns> string RemoveAllChineseAndSymbol(string str) { var placeStr = Regex.Replace(str, @"([\p{P}*])", " "); placeStr = Regex.Replace(placeStr, @"([\u4e00-\u9fa5])", ""); return placeStr; } /// <summary> /// 追加及替换内容 /// </summary> /// <param name="str"></param> /// <returns></returns> string AppendWords(string str) { var append = Regex.Replace(ToDBC(txtAppend.Text.Trim()), @"[\p{P}*]", " "); if (string.IsNullOrEmpty(append)) { return str; } var i=combSelect.SelectedIndex; if (i==0) { return str.Trim() + " " + append; }else if (i==1) { return append + " " + str.Trim(); }else if (i==2) { var replaceTo=Regex.Replace(ToDBC(txtToReplace.Text.Trim()), @"[\p{P}*]", " "); return str.Trim().Replace(append, replaceTo); } else { return str; } } /// <summary> /// 全角转半角 /// </summary> /// <param name="input"></param> /// <returns></returns> public string ToDBC(string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 12288) { c[i] = (char)32; continue; } if (c[i] > 65280 && c[i] < 65375) c[i] = (char)(c[i] - 65248); } return new String(c); } private void combSelect_SelectedIndexChanged(object sender, EventArgs e) { var cb=(ComboBox) sender; txtToReplace.Visible = cb.SelectedIndex==2; }
相关文章推荐
- 跟siki老师学C#第一天
- C#实现百度站长工具链接主动提交功能
- 关于C#下面windows服务读取注册表的问题
- C# String与string的区别
- C#中null和""的区别
- 转载: 黄聪:C#中 Excel列字母与数字的转换
- c#按照一定条件打印
- c#开发之多国语言解决方案gnu.gettext + poedit
- C#实现的18位身份证格式验证算法
- c#图片添加水印
- C# serialport控件的一些理解
- C#的历史及IDE总结
- C# Best Practices - Creating Good Methods
- C#调用dll函数时出错:视图加载格式不正常的程序
- C# 雕虫小技
- C#源代码—三角形面积、圆的面积
- C#源代码—姓名 请输入老师的编号、姓名、职称和部门
- C# string字符串转换为字节数组和转换为16进制的字符串形式
- C# 冒泡排序
- C#邮件发送类 简单实用 可自定义发件人名称