C#正则表达式完全指南

需积分: 10 0 下载量 158 浏览量 更新于2024-09-11 收藏 8KB TXT 举报
"正则表达式是用于匹配字符串模式的强大工具,在编程中广泛应用于数据验证、文本处理等场景。本文将详细介绍正则表达式的常见用法,并提供C#语言下的示例。" 正则表达式(Regular Expression)是一种模式匹配语言,它允许你通过一种简洁的语法来定义字符串的模式,以便进行查找、替换或分割字符串的操作。在C#中,正则表达式主要通过`System.Text.RegularExpressions`命名空间中的类来实现。 1. **只能输入数字**: 使用`^[0-9]*$`可以确保输入的字符串仅包含数字,不包含其他任何字符。星号(*)表示零个或多个前面的字符。 2. **只能输入n位数字**: `^\d{n}$`用来匹配恰好n位的数字,其中`\d`代表数字字符,`{n}`表示重复n次。 3. **至少n位数字**: `^\d{n,}$`表示至少n位的数字,可以是n个或更多。 4. **m到n位数字**: `^\d{m,n}$`匹配m到n位的数字,其中m和n分别代表最小和最大位数。 5. **非负整数**: `^(0|[1-9][0-9]*)$`确保输入的是非负整数,包括0。 6. **任意长度的数字,但至少保留一位小数,最多两位**: `^[0-9]+(.[0-9]{2})?$`允许输入任意长度的整数部分,后面可选地跟一个点和最多两位的小数。 7. **1到3位小数的数字**: `^[0-9]+(.[0-9]{1,3})?$`类似上一条,但小数部分限制在1到3位。 8. **国际电话号码**: `^\+?[1-9][0-9]*$`匹配国际电话号码,开头可选加号,后面是至少一个数字。 9. **负数**: `^\-[1-9][0-9]*$`用于匹配负整数。 10. **固定长度的字符串**: `^.{3}$`匹配任意三个字符的字符串。 11. **全英文字符串**: `^[A-Za-z]+$`匹配由26个英文字母组成的字符串。 12. **全大写英文字符串**: `^[A-Z]+$`只允许大写字母。 13. **全小写英文字符串**: `^[a-z]+$`仅允许小写字母。 14. **英文和数字混合字符串**: `^[A-Za-z0-9]+$`匹配包含26个英文字母和0-9数字的字符串。 15. **单词字符**: `\w+`代表一个或多个单词字符,等同于 `[a-zA-Z0-9_]`。 16. **邮箱地址验证**: `^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$`用于验证电子邮件地址格式是否正确。 17. **网址验证**: `^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$`确认输入的字符串是否符合标准的互联网URL格式。 18. **身份证号码验证**: `^\d{15}|\d{18}$`匹配15位或18位的中国身份证号码。 19. **月份验证**: `^(0?[1-9]|1[0-2])$`检查是否为1到12的月份,允许前导零。 20. **日期验证**: `^((0?[1-9])|((1|2)[0-9])|30|31)$`验证1到31的日期,考虑闰年2月。 在实际应用中,正则表达式可以通过C#的`Regex`类进行编译和匹配,例如`Regex.IsMatch(input, pattern)`方法用于判断输入字符串是否符合指定的模式。 在处理URL时,`String`类的`Replace`方法可以用来提取URL的域名部分,例如`s = s.Replace(/(.*\/){0,}([^\.]+).*/ig, "$2")`。 最后,正则表达式中的特殊字符可以通过反斜杠(\)进行转义,如`\w`代表单词字符,`\d`代表数字字符,`\.`代表点号,`\+`代表一个或多个,`\*`代表零个或多个,`\?`代表零个或一个,`\{n}`表示n次,`\{m,n}`表示m到n次。 掌握正则表达式可以帮助开发者高效地处理字符串,提高代码的可读性和维护性。通过不断的实践和学习,你可以创建更复杂、更精确的正则表达式来满足各种需求。