C#字符串处理:英文间保留一个空格,中文间空格删除。

1.无论是网络爬虫还是解析本地文本的时候,对于取到的字符串信息往往需要格式化,

英文之间的空格需要保留下来,但是汉字之间的空格往往是多余的不需要的。

具体代码参考方法RemoveTrim

using System;
using System.Text.RegularExpressions;

namespace ConsoleApplication1
{
    internal static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        private static void Main()
        {
            const string constr = @"  God      is a    gril, I have 10 apples!
            上帝    是 女孩 子, 我有10  个苹果! ";
            var str1 = RemoveTrim(constr);
            Console.WriteLine(str1);
            Console.ReadKey();
        }

        /// <summary>
        /// 处理字符串:多个空格置换成一个空格,英文之间保留一个空格,汉字之间空格删除
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        private static string RemoveTrim(string str)
        {
            var strArray = Regex.Split(str, " ");
            if (strArray.Length <= 2)
                return str;
            var re = string.Empty;
            var regChina = new Regex("^[^\x00-\xFF]");
            var regEnglish = new Regex("^[a-zA-Z0-9]");
            foreach (var t in strArray)
            {
                if (string.IsNullOrEmpty(t))
                    continue;
                if (regChina.IsMatch(t) || !regEnglish.IsMatch(t))
                    re = re + t;
                else
                {
                    if (!string.IsNullOrEmpty(re))
                        re = re + " " + t;
                    else
                        re = t;
                }
            }
            return re;
        }
    }
}

2.看一下输出结果

 

posted @ 2021-02-04 17:32  新*  阅读(446)  评论(0编辑  收藏  举报