使用c#的正则表达式验证中文字符

来源:互联网 发布:手机淘宝怎么降价提醒 编辑:程序博客网 时间:2024/06/06 01:01
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Threading.Tasks;namespace 正则表达01{    /// <summary>    /// 表达是否是字符是不是中文    /// </summary>    class Program    {        /// <summary>        /// 在 ASCII码表中,英文的范围是0-127,而汉字则是大于127        /// </summary>        static void justice1() {            string text = "adonai,天下英雄出我辈,一入江湖岁月催。鸿图霸业谈笑间,不胜人生一场醉。 提剑跨骑挥鬼雨,白骨如山鸟惊飞。 尘世如潮人如水,只叹江湖几人回";            for (int i = 0; i < text.Length; i++)            {                if ((int)text[i] > 127)                    Console.WriteLine("是汉字");                else                    Console.WriteLine("不是汉字");            }        }        /// <summary>        /// 汉字的UNICODE编码范围是4e00-9fbb        /// </summary>        static void justice2() {            string text = "adonai,天下英雄出我辈,一入江湖岁月催。鸿图霸业谈笑间,不胜人生一场醉。 提剑跨骑挥鬼雨,白骨如山鸟惊飞。 尘世如潮人如水,只叹江湖几人回";            char[] c = text.ToCharArray();            for (int i = 0; i < c.Length; i++)                if (c[i] >= 0x4e00 && c[i] <= 0x9fbb)                    Console.WriteLine("是汉字");                else                    Console.WriteLine("不是汉字");        }        /// <summary>        /// 正则表达式判断也是用汉字的 UNICODE 编码范围        /// </summary>        static void justice3() {            string text = "adonai,天下英雄出我辈,一入江湖岁月催。鸿图霸业谈笑间,不胜人生一场醉。 提剑跨骑挥鬼雨,白骨如山鸟惊飞。 尘世如潮人如水,只叹江湖几人回";        for (int i = 0; i < text.Length; i++)        {               if (Regex.IsMatch(text[i].ToString(), @"[\u4e00-\u9fbb]"))                   Console.WriteLine("是汉字");               else                   Console.WriteLine("不是汉字");        }        }        static void Main(string[] args)        {            justice1();            Console.ReadKey();        }    }}