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 > )
{
var first = item.Substring(, ).ToUpper();
var last = "";
if (item.Length > )
{
last = item.Substring(, item.Length-);
}
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==)
{
return str.Trim() + " " + append;
}else if (i==)
{
return append + " " + str.Trim();
}else if (i==)
{
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 = ; i < c.Length; i++)
{
if (c[i] == )
{
c[i] = (char);
continue;
}
if (c[i] > && c[i] < )
c[i] = (char)(c[i] - );
}
return new String(c);
} private void combSelect_SelectedIndexChanged(object sender, EventArgs e)
{
var cb=(ComboBox) sender;
txtToReplace.Visible = cb.SelectedIndex==;
}

c# 替换所有中文、标点符号,全角转半角的更多相关文章

  1. word中利用宏替换标点标点全角与半角

    Alt+F11,然后插入-模块: 复制下面代码到编辑窗口: Sub 半角标点符号转换为全角标点符号() '中英互译文档中将中文段落中的英文标点符号替换为中文标点符号 Dim i As Paragrap ...

  2. c# 中文字符(全角、半角)通用处理

    声明:本文仅提供一种编程思路,所提供代码仅供参考,如需使用,请自行完善. 我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角.半角的问题,这会在查询时给我们带来很多麻烦.本 ...

  3. C#全角和半角转换

    在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为"半角",相对地把一个汉字所占的位置称为"全角".在汉字输入时,系统提供&quo ...

  4. JS对全角与半角的验证,相互转化以及介绍

    1.什么是全角和半角? 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置.全角占两个字节. 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都 ...

  5. Oracle - 全角和半角

    全角和半角 只有字符,数字,标点符号有全角和半角的区别,中文没有 普通写一句英文(即不要输入法):I am 28 years old, do you love me?采用半角写:I am 28 yea ...

  6. JS如何判断文字是全角还是半角

    载自:http://www.php.cn/js-tutorial-362638.html 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置.全角占两个字节.半角:是指一个 ...

  7. 全角和半角相互转换(C语言实现)

    目前,我们接触的汉字编码主要包括GBK和GB2312.其中,GB2312又称国标码,它是一个简化字的编码规范,也包括其他的符号.字母.日文假名等,共7445个图形字符,其中汉字占6763个.我们平时说 ...

  8. 刨根究底字符编码之五——简体汉字编码方案(GB2312、GBK、GB18030、GB13000)以及全角、半角、CJK

    简体汉字编码方案(GB2312.GBK.GB18030.GB13000)以及全角.半角.CJK   一.概述 1. 英文字母再加一些其他标点字符之类的也不会超过256个,用一个字节来表示一个字符就足够 ...

  9. Java全角、半角字符的关系以及转换

    如果搞明白了Java中全角字符和半角字符之间的关系,那他们之间的转换就不是个麻烦事儿.你只需要对这个关系有那么一个印象就足够了. 全角字符与半角字符的关系 通过下面的代码能看到Java中所有字符以及对 ...

随机推荐

  1. Entity Framework Core 命名约定

    本文翻译自<Entity Framework Core: Naming Convention>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 注意:我使用的是 Entity ...

  2. C++第三篇--程序结构

    C++第三篇--程序结构 1. 初识程序结构 将类中的成员函数全部放在类外实现,类中只负责声明该函数 person.cpp #include <stdio.h> class Person{ ...

  3. U盘发现器

    U盘发现器 package com.lx.io; import java.io.File; import java.io.IOException; import java.util.ArrayList ...

  4. 从零开始打jar包

    经常会头疼于一个jar包是如何制作的,包括maven的打包方式,springboot的打jar包的原理,jar包稍稍有错误就会完全无法运行.在网上折腾了很久终于有些思路和步骤,在这里做个笔记 本文大纲 ...

  5. Epii.js 一个极其简单的Js模板引擎

    Epii.js 简约而不简单的Js模板引擎 Epii.js 简约而不简单的JavaScript模板引擎 # 特性 一个轻量级模板引擎,可快速实现数据与ui绑定(数据变动,UI自动变动),快速实现事件绑 ...

  6. 学生成绩管理系统——C语言实现

    一.功能实现: 0.浏览学生信息 1.输入学生信息 2.增加学生信息 3.修改学生信息 4.删除学生信息 5.按学号查询 6.按班级查询 7.按姓名查询 8.按课堂名称查询 9.按总分高低排序 10. ...

  7. year:2017 month:08 day:04

    2017-08-04 JAVAse 1.final修饰符 final可以修饰类,成员方法,成员变量(static 修饰符不可以修饰类) final的初始化在对象被实例化前即可final 修饰的方法不可 ...

  8. git分支管理之解决冲突

    人生不如意之事十之八九,合并分支往往也不是一帆风顺的. 准备新的feature1分支,继续我们的新分支开发: $ git checkout -b feature1 Switched to a new ...

  9. python几种常见语法

    NO1.type自动匹配类型 name="zhangsan"age=18 print (type(name))#type自动匹配类型 print ("name:%s,ag ...

  10. 关于appcompat_v7兼容包的详细说明

    1.appcompat_v7包的由来? appcompat_v7是Google提供的向下兼容包,是针对API level 7(Android2.1)及以上版本所开发的,其作用是为了让兼容低版本API( ...