C# 常用正则式
根据给定文件的信息,我们可以总结出以下关于C#中常用正则表达式的知识点: ### 一、电话号码和手机号码验证 #### 1. 国内电话号码验证 ```csharp Regex RegPhone = new Regex(@"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?|^(\d{11})$"); ``` - **解释**:此正则表达式用于验证国内的电话号码格式。 - `(d+-)?`:匹配区号前可能存在的“-”,`d+` 表示一个或多个数字。 - `(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})`:这部分主要匹配固定电话号码的格式,包括区号和电话号码部分。其中`d{4}`表示四个数字(通常代表区号),`d{7}`表示七个数字(通常代表本地电话号码的一部分)。如果区号是三个数字,则电话号码可以是八个数字。此外,还支持七位或八位没有区号的电话号码。 - `(-d+)?`:匹配电话分机号,以“-”开头后跟一个或多个数字。 - `^(\d{11})$`:这部分用于匹配11位手机号码。 #### 2. 手机号码验证 ```csharp Regex RegMobile = new Regex(@"^((\(\d{2,3}\))|(\d{3}\-))?1[3|5]\d{9}$"); ``` - **解释**:该正则表达式主要用于验证中国手机号码格式。 - `^((\(\d{2,3}\))|(\d{3}\-))?`:可选匹配区号,如"(010)"或"010-"。 - `1[3|5]`:匹配手机号码前三位中的第一位必须是1,第二位可以是3或5。 - `\d{9}`:匹配接下来的九位数字。 ### 二、数字类型的验证 #### 1. 整数验证 ```csharp Regex RegInt = new Regex(@"^-?\d+$"); ``` - **解释**:该正则表达式用于验证整数,允许有符号。 - `-?`:表示前面可以有一个可选的减号。 - `\d+`:表示至少一个数字。 #### 2. 正整数验证 ```csharp Regex RegPosInt = new Regex(@"^[0-9]*[1-9][0-9]*$"); ``` - **解释**:该正则表达式用于验证正整数。 - `[0-9]*[1-9][0-9]*`:确保以非零数字开始,并且后面可以跟随任意数量的数字。 #### 3. 浮点数验证 ```csharp Regex RegDecimal = new Regex("^[0-9]+[.]?[0-9]+$"); ``` - **解释**:该正则表达式用于验证浮点数。 - `[0-9]+`:表示至少一个数字。 - `[.]?`:表示小数点是可选的。 - `[0-9]+`:表示小数点后至少有一个数字。 ### 三、特殊字符串的验证 #### 1. 包含中文字符的字符串验证 虽然在提供的代码片段中没有明确包含中文字符验证的正则表达式,但可以通过以下正则表达式进行验证: ```csharp Regex RegChinese = new Regex(@"[\u4e00-\u9fa5]"); ``` - **解释**:该正则表达式用于验证字符串中是否包含中文字符。 - `[\u4e00-\u9fa5]`:表示匹配中文字符范围内的字符。 ### 四、电子邮件地址和URL的验证 #### 1. 邮件地址验证 ```csharp Regex RegEmail = new Regex(@"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); ``` - **解释**:该正则表达式用于验证标准的电子邮件地址格式。 - `^([\w-\.]+)`:匹配用户名部分,可以包含字母、数字、下划线、短横线和点。 - `@`:匹配邮箱符号。 - `((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))`:匹配域名或IP地址。 - `([a-zA-Z]{2,4}|[0-9]{1,3})`:匹配顶级域名或IP地址的最后一部分。 - `(\]?)$`:表示IP地址形式的括号是可选的。 #### 2. URL地址验证 ```csharp Regex RegURL = new Regex(@"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"); ``` - **解释**:该正则表达式用于验证标准的URL格式。 - `^[a-zA-z]+://`:匹配协议头,如http:// 或 https://。 - `(\w+(-\w+)*)(\.(\w+(-\w+)*))*`:匹配域名或子域名。 - `(\?\S*)?$`:匹配URL后面的查询字符串。 ### 五、身份证号验证 ```csharp Regex RegManID = new Regex(@"(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$)|(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)"); ``` - **解释**:该正则表达式用于验证中国大陆身份证号码的格式。 - `(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$)`:验证18位身份证号。 - `(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)`:验证15位身份证号。 通过以上对C#中常用的正则表达式的解析,我们可以看到这些正则表达式覆盖了多种常见的数据格式验证需求,对于开发人员来说非常实用。