正则规范空格问题

需求:规范段落中的空格,英文与中文间,英文与数字间,汉字与汉字,数字与数字,英文与英文间的空格不做处理。

例如:Enligsh           中文  123中文,abc234;要实现 english 中文123中文,abc  234

解决方案:

 public string MatchKG(string source)
        {
            string strReturn = "";
            string Expression = @"([0-9]{1}\s{1,}[\u4e00-\u9fa5]{1}|[\u4e00-\u9fa5]\s{1,}[0-9]{1})";
            MatchCollection matches = System.Text.RegularExpressions.Regex.Matches(source, Expression);
            for (int index = 0; index < matches.Count; index++)
            {
                source = source.Replace(matches[index].Value, matches[index].Value.Replace(" ", ""));
            }

            strReturn = source;

            Regex reg = new Regex(@"(?<=[a-zA-Z']+) *(?=[0-9\u4e00-\u9fa5])|(?<=[0-9\u4e00-\u9fa5]) *(?=[a-zA-Z']+)");
            source = reg.Replace(source, " ");
            strReturn = source;
            return strReturn;

        }

思路 描述:先给中文与英文,英文与数字匹配一个空格,然后再取出“中文+空格+数字或者“数字+空格+中文””将中文与数字间的空格删掉。

你可能感兴趣的:(正则规范空格问题)