C#正则表达式匹配字符串

正则表达式可以快速判断所给字符串是否某种指定格式。这里将一些常用的方法封装进一个字符串工具类中。

  1 public static class StringTool
  2 {
  3     /// <summary>
  4     /// 判断字符串是否纯数字
  5     /// </summary>
  6     /// <param name="str"></param>
  7     /// <returns></returns>
  8     public static bool IsNumber(string str)
  9     {
 10         return Regex.IsMatch(str, @"^[0-9]+$");
 11     }
 12
 13     /// <summary>
 14     /// 判断字符串是否纯字母
 15     /// </summary>
 16     /// <param name="str"></param>
 17     /// <returns></returns>
 18     public static bool IsLetter(string str)
 19     {
 20         return Regex.IsMatch(str, @"^[A-Za-z]+$");
 21     }
 22
 23     /// <summary>
 24     /// 判断字符串是否字母或数字的组合
 25     /// </summary>
 26     /// <param name="str"></param>
 27     /// <returns></returns>
 28     public static bool IsLetterOrNumber(string str)
 29     {
 30         return Regex.IsMatch(str, @"(?i)^[0-9a-z]+$");
 31     }
 32
 33     /// <summary>
 34     /// 统计字符串中汉字个数
 35     /// </summary>
 36     /// <param name="str"></param>
 37     /// <returns></returns>
 38     public static int CountChinese(string str)
 39     {
 40         return str.Count(c => Regex.IsMatch(c.ToString(), @"^[\u4E00-\u9FA5]{0,}$"));
 41     }
 42
 43     /// <summary>
 44     /// 判断字符串是否纯中文
 45     /// </summary>
 46     /// <param name="str"></param>
 47     /// <returns></returns>
 48     public static bool IsChinese(string str)
 49     {
 50         return Regex.IsMatch(str, @"^[\u4e00-\u9fa5],{0,}$");
 51     }
 52
 53     /// <summary>
 54     /// 判断字符串中是否包含中文
 55     /// </summary>
 56     /// <param name="str"></param>
 57     /// <returns></returns>
 58     public static bool HasChinese(string str)
 59     {
 60         return Regex.IsMatch(str, @"[\u4e00-\u9fa5]");
 61     }
 62
 63     /// <summary>
 64     /// 统计字符串中全角字符个数
 65     /// </summary>
 66     /// <param name="str"></param>
 67     /// <returns></returns>
 68     public static int CountSbcCase(string str)
 69     {
 70         return Encoding.Default.GetByteCount(str) - str.Length;
 71     }
 72
 73     /// <summary>
 74     /// 判断字符串中是否包含全角字符
 75     /// </summary>
 76     /// <param name="str"></param>
 77     /// <returns></returns>
 78     public static bool HasSbcCase(string str)
 79     {
 80         return CountSbcCase(str) > 0;
 81     }
 82
 83     /// <summary>
 84     /// 统计字符串中半角字符个数
 85     /// </summary>
 86     /// <param name="str"></param>
 87     /// <returns></returns>
 88     public static int CountDbcCase(string str)
 89     {
 90         return str.Length - CountSbcCase(str);
 91     }
 92
 93     /// <summary>
 94     /// 判断字符串中是否包含半角字符
 95     /// </summary>
 96     /// <param name="str"></param>
 97     /// <returns></returns>
 98     public static bool HasDbcCase(string str)
 99     {
100         return CountDbcCase(str) > 0;
101     }
102
103     /// <summary>
104     /// 判断字符串中是否符合邮箱格式
105     /// </summary>
106     /// <param name="str"></param>
107     /// <returns></returns>
108     public static bool IsEmail(string str)
109     {
110         return Regex.IsMatch(str, @"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");
111     }
112 }
时间: 2024-10-11 11:40:46

C#正则表达式匹配字符串的相关文章

踩坑正则表达式-匹配字符串中的整数和小数

首先,明白几个边界匹配器字符的含义. ^:整行字符串的开头位置 \A:整段字符串的开头位置 $:整行字符串的结尾位置 \z:整段字符串的结尾位置 关于\b和\B,官方原版的解释中是A word boundary和A non-word boundary,没有详细的解释,反正我是没看明白,自己测试一下,匹配字符串:6lo.ve,正则表达式:\B\D.结果共三处,包括l.o.v 三个字母. 那么我们是不是可以认为\B\D表示:匹配一个任意非数字的字符,并且字符的前一位是字母或者数字,此时这个单词不是边

正则表达式匹配字符串中是否的整数价格和小数价格

/**     * 匹配字符串中是否的整数价格和小数价格     * @param str     * @return     */    public static String Match_the_amount(String str) {        String pattern[] = {"[1-9]\\d*\\u5143|[1-9]\\d*.\\d*\\u5143|0.\\d*[1-9]\\d*\\u5143|"                + "[1-9]\\d

C#正则表达式匹配字符串中的数字

今天遇到了类似的开发,记录一下(直接贴代码了): private void button1_Click(object sender, EventArgs e) { string str = "m=\"1\"+\"2\"+\"3\"+\"4\"+\"5\"+\"6\"+\"7\"";//字符串 Regex r = new Regex(@"(

C# -- 正则表达式匹配字符之含义

原文:C# -- 正则表达式匹配字符之含义 C#正则表达式匹配字符之含义 1.正则表达式的作用:用来描述字符串的特征. 2.各个匹配字符的含义: .   :表示除\n以外的单个字符 [ ]  :表示在字符数组[]中罗列出来的字符任意取单个 |   :表示"或"的意思 ()  :表示改变优先级或"提取组" *   :限定前面的表达式出现0次或多次 +   :限定前面的表达式出现1次或多次 ?  :限定前面的表达式出现0次或1次 ^   :表示以表达式开头(例:^htt

正则表达式里字符串”不包含”匹配技巧

经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在正则表达式里使用,^(hede)来过滤"hede"字串,但这种写法是错误的.我们可以这样写:[^hede],但这样的正则表达式完全是另外一个意思,它的意思是字符串里不能包含'h','e','d'三个但字符.那什么样的正则表达式能过滤出不包含完整"hello"字串的信息呢? 事实上,说正则表达式里不支持逆向匹配并不是百分之百的正确.就像这个问题,我们就可以使用否定式查找来模拟出逆向匹配,从而解决我们的问

【转载】Python使用中文正则表达式匹配指定中文字符串的方法示例

本文实例讲述了Python使用中文正则表达式匹配指定中文字符串的方法.分享给大家供大家参考,具体如下: 业务场景: 从中文字句中匹配出指定的中文子字符串 .这样的情况我在工作中遇到非常多, 特梳理总结如下. 难点: 处理GBK和utf8之类的字符编码, 同时正则匹配Pattern中包含汉字,要汉字正常发挥作用,必须非常谨慎.推荐最好统一为utf8编码,如果不是这种最优情况,也有酌情处理. 往往一个具有普适性的正则表达式会简化程序和代码的处理,使过程简洁和事半功倍,这往往是高手和菜鸟最显著的差别.

正则表达式匹配不包含某些字符串

正则表达式匹配不包含某些字符串: ^(([email protected]).)*$   //如果包含@字符串会被匹配处理 public static void main(String[] args){ String reg = "^(([email protected]).)*$"; System.out.println("gdfgfgdffgn".matches(reg)); } 字符串不包含@,返回true 原文地址:https://www.cnblogs.c

Vim正则表达式匹配替换字符串

/********************************************************************** * Vim正则表达式匹配替换字符串 * 说明: * 用Vim用了几年了,平时也就替换字符串比较多,很少用正则表达式替换, * 今天在修改HTML文档的时候,不想一个一个去替换. * * 2018-6-1 深圳 宝安西乡 曾剑锋 ****************************************************************

js正则表达式验证、匹配数字、匹配字符串、匹配中文、匹配任意字符备忘录

本文转自:91博客 :原文地址:http://www.9191boke.com/235792704.html 正则表达式或“regex”用于匹配字符串的各个部分,下面是我创建正则表达式的备忘录.包括一些常用的验证.匹配数字.匹配字符串.匹配中文.匹配任意字符串. 匹配正则 使用 .test() 方法 let testString = "My test string"; let testRegex = /string/; testRegex.test(testString); 匹配多个模