在C#编程中,正则表达式是一种强大的文本处理工具,用于模式匹配和字符串验证。它们可以帮助你检查字符串是否符合特定格式,例如检查输入的邮箱地址、电话号码、日期等是否有效。以下是对C#中正则表达式使用方法和示例的详细解释: 1. **使用方式**: - **在WebForm中使用RegularExpressionValidator控件**:这是一种直观的UI验证方式,用于在用户输入数据后立即进行验证。设置`ValidationExpression`以定义验证规则,`ControlToValidate`指定要验证的控件,`ErrorMessage`定义错误提示。 - **在代码隐藏部分(WinForm或WebForm)中使用正则表达式**:首先引入`System.Text.RegularExpressions`命名空间,然后创建`Regex`对象,传入验证规则字符串,接着使用`IsMatch`方法对字符串进行验证,根据返回的布尔值来判断输入是否有效。 2. **正则表达式示例**: - **HTML标记**:`<(.*)>.*<\/\1>|<(.*) \/>` 可以用来匹配HTML标签。 - **正整数**:`^[0-9]*[1-9][0-9]*$` 用于确认输入是正整数。 - **负整数**:`^-?[0-9]*[1-9][0-9]*$` 匹配负整数。 - **整数**:`^-?\d+$` 检查任何整数,包括正负。 - **正浮点数**:`^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$` 用于验证正浮点数。 - **负浮点数**:`^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$` 用于识别负浮点数。 - **浮点数**:`^(-?\d+)(\.\d+)?$` 匹配任意浮点数。 - **26个英文字母**:`^[A-Za-z]+$` 验证仅包含字母的字符串。 - **26个大写字母**:`^[A-Z]+$` 检查仅包含大写字母的字符串。 - **26个小写字母**:`^[a-z]+$` 确保字符串只包含小写字母。 - **数字和字母混合**:`^[A-Za-z0-9]+$` 验证由字母和数字组成的字符串。 - **数字、字母和下划线混合**:`^\w+$` 用于匹配由字母、数字或下划线组成的字符串。 - **电子邮件地址**:`\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*` 用于验证邮箱格式。 - **网址URL**:`^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$` 检查URL格式。 - **中国电话**:`((d{3,4})|d{3,4}-)?d{7,8}(-d{3})*` 匹配中国电话号码的多种格式。 - **字母开头的5-16位字符串**:`^[a-zA-Z][a-zA-Z0-9_]{6,20}$` 验证以字母开头且长度在5-16之间的字符串。 - **QQ号**:`^[1-9]*[1-9][0-9]*$` 用于确认输入的QQ号码。 - **IP地址**:`^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$` 验证IPv4地址。 - **首尾空格**:`(^\s*)|(\s*$)` 用于匹配字符串开头或结尾的空格。 - **空行**:`\n[\s| ]*\r` 查找字符串中的空行。 - **中国邮政编码**:`[1-9]\d{5}(?!\d)` 检验中国邮政编码。 - **中国手机**:`(86)*0*13\d{9}` 匹配中国手机号码。 - **中国电话(包括手机)**:`(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}` 验证中国电话号码。 - **数字**:`(-?\d*)(\.\d+)?` 匹配任何数字,包括整数和小数。 - **双字节字符**:`[^\x00-\xff]*` 查找非ASCII字符。 - **过滤不安全的字符**:`^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s` 用于过滤可能的特殊字符。 - **日期**:`((((19){1}|(20){1})d{2})|d{2})[01]{1}d{1}[0-3]{1}d{1}` 验证日期格式。 3. **正则表达式进阶用法**: - 只能输入数字:"^[0-9]*$"。 - 只能输入n位的数字:"^\d{n}$"。 - 只能输入至少n位的数字:"^\d{n,}$"。 - 只能输入m~n位的数字:"^\d{m,n}$"。 - 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。 - 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{1,2})?$"。 这些示例展示了C#中正则表达式的多样性和灵活性。通过熟练掌握正则表达式,你可以编写出更复杂的验证规则,确保应用程序的数据输入准确无误。无论是在网页表单验证还是后台数据处理中,正则表达式都是不可或缺的工具。学习和掌握正则表达式,对于提升开发效率和代码质量都有很大帮助。
剩余11页未读,继续阅读
- wen3699710162013-08-02正则太麻烦了,刚记下一会就忘了
- 粉丝: 4
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- java源码资源JAVA+JSP的聊天室
- java源码资源Java+ajax写的登录实例
- 【java毕业设计】网上招投标系统源码(ssm+mysql+说明文档).zip
- [风河VxWorks].TORNADO.v2.2 for pentium
- 【java毕业设计】实验室课程管理系统源码(ssm+mysql+说明文档+LW).zip
- 数据同步的艺术:数据库同步策略与实践
- java源码资源Java 高考信息管理系统 SQL数据库
- (源码)基于Qt框架的在线题库管理系统.zip
- java源码资源Java 电梯模拟程序 v2.0
- 【java毕业设计】平面设计课程在线学习平台系统源码(ssm+mysql+说明文档+LW).zip