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
投稿

猜你喜欢

  • Android-实现切换Fragment页功能的实现代码

    2023-05-06 12:28:49
  • Android编程使用LinearLayout和PullRefreshView实现上下翻页功能的方法

    2023-06-30 02:16:15
  • JAVA中JSONObject对象和Map对象之间的相互转换

    2023-07-13 15:04:28
  • Java之常用类小结案例讲解

    2022-10-08 07:34:24
  • java io读取文件操作代码实例

    2023-04-12 08:53:57
  • java使用Abobe Acrobat DC生成模板

    2022-04-14 21:03:12
  • Android中使用Kotlin实现一个简单的登录界面

    2023-01-29 13:51:37
  • seata-1.4.0安装及在springcloud中使用详解

    2023-02-21 00:49:21
  • SpringBoot集成RabbitMQ和概念介绍

    2022-06-25 18:36:24
  • Java实现经典游戏黄金矿工的示例代码

    2022-01-09 16:35:41
  • 批处理一键安装JDK/一键安装JRE和自动配置Java环境变量

    2023-11-29 05:28:30
  • 深入理解java重载和重写

    2022-09-28 12:19:32
  • Android App仿QQ制作Material Design风格沉浸式状态栏

    2021-06-07 01:10:48
  • Unity3D基于UGUI实现虚拟摇杆

    2023-03-15 15:42:37
  • 通过实例解析java过滤器和拦截器的区别

    2022-12-21 05:02:45
  • Android利用爬虫实现模拟登录的实现实例

    2021-05-24 18:47:24
  • C++中的类模板详解及示例

    2023-10-04 17:33:28
  • 详解Java使用super和this来重载构造方法

    2023-04-20 08:34:47
  • android开发教程之实现listview下拉刷新和上拉刷新效果

    2022-07-29 20:42:42
  • java文件操作之java写文件简单示例

    2023-10-21 14:37:13
  • asp之家 软件编程 m.aspxhome.com