C#把字符串里除汉字、英文字母、数字、空格之外的字符都换成空格。最好用正则表达式。

请附代码用函数的形式回答,我给出2个测试用例。C#把字(符串里除汉字)换成C把字符串里除汉字:18轮,氙灯,导航,14向座椅,BOSE,换成18轮氙灯导航14向座椅BOS... 请附代码用函数的形式回答,我给出2个测试用例。
C#把字(符串里除汉字)换成 C 把字 符串里除汉字
:18轮,氙灯,导航,14向座椅,BOSE, 换成 18轮 氙灯 导航 14向座椅 BOSE
展开
 我来答
匿名用户
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;
        }

这是用正则做的,效果请看图片



更多追问追答
追问
我想问你弹出界面里面为什么“换成”两边是一样的?没按照我的测试用例来。
追答
需要把源码的字串改下 才会出第二个结果,

源码里只是写了一个的字串的
exetime
2013-08-15
知道答主
回答量:12
采纳率:0%
帮助的人:6.2万
展开全部
把字符串里的每个元素(字符)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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mydocument2020
2013-08-15 · TA获得超过202个赞
知道小有建树答主
回答量:187
采纳率:100%
帮助的人:139万
展开全部

没看明白你说的是什么意思,给你个参考吧:

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;
}
追问
哪里没看明白?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦里寻你我他
2013-08-15 · TA获得超过2199个赞
知道大有可为答主
回答量:2171
采纳率:42%
帮助的人:1207万
展开全部
[\S]*

试试这个看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-15
展开全部
不会用正则,只会逐字节判断,嘿嘿
更多追问追答
追问
那也可以,不过你能穷尽特殊符号?
追答
奇怪的问题,为什么座椅、轮椅不能被识别
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式