字符组
正则表达式的字符组十分简单,就是列出你所想要匹配的字符。阅读本章前,建议先下载我于CSDN上传的示例代码,下载无需分数,下载链接。
1.普通字符组
普通字符组,列出所有你需要匹配的字符。 例如,我想要匹配数字,则可以写出以下正则表达式"[0123456789]"。你觉得"[0123456789]"太麻烦了,如果我要匹配26个英文字符,那不是要全列出来?实际上并不需要这么麻烦。可以使用范围的形式,例如,匹配10个数字可以写成"[0-9]",匹配26个小写英文字母可以写成"[a-z]",匹配26个英文字母(不分大小写的)可以写成"[a-zA-Z]"。是不是简单了很多?
.NET提供Regex类用于生成正则表达式对象。IsMatch方法是用于检查输入字符串是否匹配正则表达式,返回值为bool。
//使用正则表达式前请添加该命名空间 using System.Text.RegularExpressions; //第一个参数为你要验证的字符串,第二个参数为正则表达式 Regex.IsMatch("5","[0123456789]");//true Regex.IsMatch("a","[0123456789]");//false Regex.IsMatch("5","[0-9]");//true Regex.IsMatch("a","[a-z]");//true
2.排除型字符组
排除型字符组,列出所有你不想要匹配的字符。例如,我不想要匹配数字,则可以写出以下正则表达式"[^0-9]",注意括号前面多了个'^'。
//第一个参数为你要验证的字符串,第二个参数为正则表达式 Regex.IsMatch("5","[^0-9]");//false Regex.IsMatch("a","[^0-9]");//true
3.字符组简记法
有人说,上面的字符组还是太长了,能不能再缩短点。程序员们总可以找到偷懒的办法,因此可以用以下正则表达式代替。"\d"代表匹配数字,和"[0-9]"是一样的。"\w"代表匹配文字,和"[0-9a-zA-Z_]"是一样的。注意在.NET中,"\w"还能匹配中文,韩文等非英文字母。"\s"匹配一些空格符和换行符,如"\t","\r","\n"等等。最后值得注意的是,请注意这些简记法的大小写,因为"\d"和"\D"是不一样的,"\d"匹配数字,而"\D"匹配"\d"所不能匹配的所有字符,他们是相反的。"\w","\s"也一样。
4.字符组运算
如果我们要匹配那些非元音字母怎么办?即匹配除(aeiou)的字母。这里可以使用字符组运算,在不同的编程语言里,字符组运算的语法是不一样的,这里取决于编程的实现。如,在.NET中,上述例子我们可以使用"[a-z-[aeiou]]"来匹配。"a-z"是匹配26个字母的,然后减去一个普通字符组"[aeiou]"。
//第一个参数为你要验证的字符串,第二个参数为正则表达式 Regex.IsMatch("a","[a-z-[aeiou]]");//false Regex.IsMatch("b","[a-z-[aeiou]]");//true
字符组暂时介绍这么多,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?