C#把字符串里除汉字、英文字母、数字、空格之外的字符都换成空格。最好用正则表达式。
请附代码用函数的形式回答,我给出2个测试用例。C#把字(符串里除汉字)换成C把字符串里除汉字:18轮,氙灯,导航,14向座椅,BOSE,换成18轮氙灯导航14向座椅BOS...
请附代码用函数的形式回答,我给出2个测试用例。
C#把字(符串里除汉字)换成 C 把字 符串里除汉字
:18轮,氙灯,导航,14向座椅,BOSE, 换成 18轮 氙灯 导航 14向座椅 BOSE 展开
C#把字(符串里除汉字)换成 C 把字 符串里除汉字
:18轮,氙灯,导航,14向座椅,BOSE, 换成 18轮 氙灯 导航 14向座椅 BOSE 展开
5个回答
2013-08-15
展开全部
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show(
Replace(
new Regex(@"([^\u4e00-\u9fa5a-zA-z0-9\s].*?)"),
":18轮,氙灯,导航,14向座椅,BOSE, 换成 18轮 氙灯 导航 14向座椅 BOSE"));
}
/// <summary>
/// The replace.
/// </summary>
/// <param name="regex">
/// The regex.
/// </param>
/// <param name="input">
/// The input.
/// </param>
/// <returns>
/// The <see cref="string"/>.
/// </returns>
public static string Replace(Regex regex, string input)
{
string inputReplaced = null;
inputReplaced = regex.Replace(input, " ");
return inputReplaced;
}
这是用正则做的,效果请看图片
更多追问追答
追问
我想问你弹出界面里面为什么“换成”两边是一样的?没按照我的测试用例来。
追答
需要把源码的字串改下 才会出第二个结果,
源码里只是写了一个的字串的
展开全部
把字符串里的每个元素(字符)for一下,然后用Encoding.Default处理成字节码,长度为1的是Ascii,用<和>确定范围,是字母数字空格可以不管,其它可以换成空格(详请参照Ascii表),长度为、2的是汉字,不用管。
public static string Proc(string str)
{
for(int i=0;i<str.Length;i++)
. {
. byte[] bts=Enco
ding.Default.GetBytes(str[i]);
.
. if(bts.Length==1){
. if(!((bts[0]>=48&&bts[0]<=57)||(bts[0]>=65&&bts[0]<=90)||(bts[0]>=97&&bts[0]<=122)))
. {
. str[i]=' ';
. }
. }
. }
. return str;
}
public static string Proc(string str)
{
for(int i=0;i<str.Length;i++)
. {
. byte[] bts=Enco
ding.Default.GetBytes(str[i]);
.
. if(bts.Length==1){
. if(!((bts[0]>=48&&bts[0]<=57)||(bts[0]>=65&&bts[0]<=90)||(bts[0]>=97&&bts[0]<=122)))
. {
. str[i]=' ';
. }
. }
. }
. return str;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看明白你说的是什么意思,给你个参考吧:
private string Replace(string input)
{
string result= Regex.Replace(input, @"[u4e00-u9fa5]", "C", RegexOptions.Compiled | RegexOptions.IgnoreCase);
result = Regex.Replace(result, @"[,]", " ", RegexOptions.Compiled | RegexOptions.IgnoreCase);
return result;
}
追问
哪里没看明白?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
[\S]*
试试这个看
试试这个看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-15
展开全部
不会用正则,只会逐字节判断,嘿嘿
更多追问追答
追问
那也可以,不过你能穷尽特殊符号?
追答
奇怪的问题,为什么座椅、轮椅不能被识别
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询