c# 替换所有中文、标点符号,全角转半角
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# 替换所有中文、标点符号,全角转半角的更多相关文章
- word中利用宏替换标点标点全角与半角
Alt+F11,然后插入-模块: 复制下面代码到编辑窗口: Sub 半角标点符号转换为全角标点符号() '中英互译文档中将中文段落中的英文标点符号替换为中文标点符号 Dim i As Paragrap ...
- c# 中文字符(全角、半角)通用处理
声明:本文仅提供一种编程思路,所提供代码仅供参考,如需使用,请自行完善. 我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角.半角的问题,这会在查询时给我们带来很多麻烦.本 ...
- C#全角和半角转换
在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为"半角",相对地把一个汉字所占的位置称为"全角".在汉字输入时,系统提供&quo ...
- JS对全角与半角的验证,相互转化以及介绍
1.什么是全角和半角? 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置.全角占两个字节. 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都 ...
- Oracle - 全角和半角
全角和半角 只有字符,数字,标点符号有全角和半角的区别,中文没有 普通写一句英文(即不要输入法):I am 28 years old, do you love me?采用半角写:I am 28 yea ...
- JS如何判断文字是全角还是半角
载自:http://www.php.cn/js-tutorial-362638.html 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置.全角占两个字节.半角:是指一个 ...
- 全角和半角相互转换(C语言实现)
目前,我们接触的汉字编码主要包括GBK和GB2312.其中,GB2312又称国标码,它是一个简化字的编码规范,也包括其他的符号.字母.日文假名等,共7445个图形字符,其中汉字占6763个.我们平时说 ...
- 刨根究底字符编码之五——简体汉字编码方案(GB2312、GBK、GB18030、GB13000)以及全角、半角、CJK
简体汉字编码方案(GB2312.GBK.GB18030.GB13000)以及全角.半角.CJK 一.概述 1. 英文字母再加一些其他标点字符之类的也不会超过256个,用一个字节来表示一个字符就足够 ...
- Java全角、半角字符的关系以及转换
如果搞明白了Java中全角字符和半角字符之间的关系,那他们之间的转换就不是个麻烦事儿.你只需要对这个关系有那么一个印象就足够了. 全角字符与半角字符的关系 通过下面的代码能看到Java中所有字符以及对 ...
随机推荐
- hdu 3926 hands in hands
https://vjudge.net/problem/HDU-3926 题意:有n个小朋友,他们之间手拉手,但是一只手只能拉一只手或者不拉,现在给出两个图,表示拉手关系,问这两个图是否同构.思路:一开 ...
- Android - 使用Volley请求网络数据
Android - 使用Volley请求网络数据 Android L : Android Studio 14 个人使用volley的小记,简述使用方法,不涉及volley源码 准备工作 导入Volle ...
- xdu_1165:均值滤波
题目: Problem A 均值滤波问题描述图像中的噪声在空间上的自相关很低,因此往往可以用均值滤波加以削弱.具体来说,对于每个像素点P(x; y),我们选出所有距P 的Manhattan 距离不超过 ...
- 浮点数的陷阱--double i != 10 基本都是对的,不管怎么赋值
#include <stdio.h>int main(){ double i; for(i = 10; i != 10, i < 12; i += 0.1) ...
- [luogu P3786]萃香抱西瓜 [spfa][状态压缩]
题目背景 伊吹萃香(Ibuki Suika)正在魔法之森漫步,突然,许多西瓜(Suika)从四周飞来,划出了绚丽的轨迹.虽然阵势有点恐怖,但她还是决定抱走一些西瓜. 题目描述 萃香所处的环境被简化为一 ...
- 创建自己的代码片段(CodeSnippet)
前言 工作中经常会写一些重复的代码片段,如自动属性.for循环.Action等等,针对这种情况,VisualStudio已经给我们提供了一个非常方便的功能--代码片段,是我们可以简单的输入几个字母就能 ...
- php的laravel框架使用心得
最近在做一项目,是基于laravel的后台api,用于与手机交互的,数据采用json格式.下面说下怎样在两周内把一个新框架或者语言用的得心应手. 项目采用laravel5.4+dingoapi+jwt ...
- 认真地搞OI
新博客的开头 OI生涯的开始 #include<cstdio> int main() { puts("Hello world!"); ; }
- curl---一款实用的URL命令行网络通讯工具/库
最近一段时间在看朴灵翻译的<深入浅出nodejs>,里面有提到一种脱离浏览器的客户端网络通讯工具,curl命令,自己在电脑上试了一下,感觉非常好用,而且莫名的感觉这是一个非常强大的网络工具 ...
- InnoDB 索引原理
InnoDB索引原理 索引能够提高访问的速率 B+树索引(最为常用和最为有效).全文索引.哈希索引. 数据库中的B+树索引可以分为聚集索引和辅助索引,但是不管是聚集还是辅助的索引,其内部都是B+树,是 ...