C#使用正则表达式

作者:農碼一生 时间:2021-11-16 18:33:57 

一.正则基础

1. []方括号表示匹配可以匹配方括号中的任意点单个字符,方括号只允许匹配单个字符。
2. | 或表示两项之间的一个选择,它不能和方括号使用,只能和小括号使用。
3. ()小括号表示一个子表达式的开始和结束位置
4. ^ 否符号,如果用在方括号内,“^”表示不想要匹配的字符。
5. . 点字符:匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
6. 定位符:定位符使您能够将正则表达式固定到行首或行尾,^ 和 $ 分别指字符串的开始与结束
7. 限定符:限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配

  • * 表示匹配前面的子表达式0次或多次

  • ?表示匹配前面的子表达式0次或一次

  • + 表示匹配前面的子表达式至少匹配一次

  • {n} 表示匹配前面的子表达式n次

  • {n,m} 表示匹配前面的子表达式从n次到m次

8. 转义字符 

  • \d 匹配一个数字字符。等价于 [0-9]。

  • \D 匹配一个非数字字符。等价于 [^0-9]。

  • \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

  • \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。

  • \w 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。

  • \W 匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'。

  • \n 匹配一个换行符

  • \r 匹配一个回车符

  • \b 匹配一个单词边界,即字与空格间的位置。匹配单词的开始或者结尾部分

  • \B 匹配非单词边界 匹配单词的中间部分,例如:匹配:Chapter中的apt,/\Bapt/

二.常用的匹配符

只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^\d{n}$"。
只能输入至少n位的数字:"^\d{n,}$"。
只能输入m~n位的数字:。"^\d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
只能输入非零的负整数:"^\-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&’,;=?$\"等字符:"[^%&’,;=?$\x22]+"。
只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。
验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。
验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。
验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"

三.使用方法

public static bool Match(string strValue)
{
   bool result = Regex.IsMatch(strValue, @"^-[1-9][0-9]*$");
   return result;
}

来源:https://www.cnblogs.com/wml-it/p/12204277.html

标签:C#,正则表达式
0
投稿

猜你喜欢

  • 详解maven的setting配置文件中mirror和repository的区别

    2022-03-19 11:56:42
  • Unity实现切割图集工具

    2021-07-03 23:14:57
  • 在Spring中自动装配Bean的属性

    2022-01-29 07:01:28
  • SpringBoot参数校验与国际化使用教程

    2021-11-13 15:52:21
  • List集合多个复杂字段判断去重的案例

    2022-08-01 16:23:28
  • 浅谈c++性能测试工具之计算时间复杂度

    2023-07-09 12:40:05
  • springboot 如何解决static调用service为null

    2022-09-05 05:30:03
  • C#实现扫雷游戏

    2023-12-10 07:51:05
  • Java中的字符串常量池详细介绍

    2023-03-08 09:16:41
  • C# WPF后台动态添加控件实战教程

    2022-07-29 18:52:51
  • 再谈java回调函数

    2023-09-27 19:20:10
  • Java如何重写object类的equals方法详解

    2023-09-01 15:54:57
  • 深入浅析Java 抽象类和接口

    2022-12-17 19:19:27
  • 详解java封装继承多态

    2023-11-24 08:29:37
  • java对象类型转换和多态性(实例讲解)

    2023-06-23 16:33:53
  • Linux下Hadoop 2.7.3 安装搭建过程

    2023-11-08 05:13:59
  • C#利用FileSystemWatcher实时监控文件的增加,修改,重命名和删除

    2021-08-21 05:46:28
  • SpringBoot Java后端实现okhttp3超时设置的方法实例

    2022-11-06 04:56:03
  • springboot+thymeleaf 文件上传功能的实现代码

    2023-11-25 05:08:59
  • Java编程关于子类重写父类方法问题的理解

    2022-05-25 05:00:32
  • asp之家 软件编程 m.aspxhome.com