正则表达式
针对文本文件进行某个规则的校验,只能校验文本格式,不能对内容进行验证 意义:
? 1、普通字符:没有特殊含义的标点符号、数字、字母、下划线 2、转义字符:换行n、制表符t、回车r、以及有特殊符号的标点符号前面加上 3、标准字符集合:匹配所有数字d、(D取反) 匹配所有数字字母下划线w、(W取反) 匹配空格字符回车换行制表符s、(S取反) 匹配除了换行以外的所有字符. 4、自定义字符集: 用 [? ?] 定义需要匹配的集合,除了匹配^需要加外,其余的符号写在[ ]里面都是表示匹配符号本身,比如, [0-5a-f]? 表示匹配0-5的数字和a-f的字符 [^0-5a-f] 表示匹配除了0-5和a-f以外的内容 5、量词{? }:匹配元素内容的重复次数,比如 {m}? 表示[ ]里面的内容需要匹配m次 {m,n}? 表示[ ]里面的内容至少需要匹配m次,最多只能匹配n次 {m,}? 表示[ ]里面的内容最少要匹配m次,没有最多次数限制 ?? 表示匹配0次或者1次(等价于{0,1}) +? 表示匹配最少1次? (等价于{1,}) *? 表示匹配0次或者任意次? (等价于{0,}) 注意:定义量词时我们一般常用贪婪模式,即匹配的字符越多越好;而非贪婪模式就是匹配最少次数,在量词后面加?即可实现。默认采用贪婪模式 6、字符边界(也称零宽) b? 匹配的是单词结尾 B? 匹配的是除了结尾的全部 ^? ?放在开头,表示匹配以某内容开始的字符串 $? 放在末尾,表示匹配以某内容结尾的字符串 7、选择符和分组 |? ?表示或 ( )? ?用括号起来的部分就是分了组 注:分组有捕获式分组和非捕获式分组,其中捕获式分组会缓存捕获的内容,用“编号”的方式获得捕获内容,放在表达式之后;非捕获式分组不会缓存内容,用“?:”的方式选择非捕获式分组,放在表达式之前。一般推荐使用费捕获式分组,这样不会占用内存 8、预搜索 (?=pattern) 正向肯定预查 断言自身出现的位置后面能跟哪些元素 例如,"Windows(?=95|98|NT|2000)"能匹配"Windows2000"中的"Windows",但不能匹配"Windows3.1"中的"Windows"。 (?<!pattern) 反向否定预查,与正向否定预查类拟,只是方向相反。 ? 实例 匹配一个IP地址: (((?:[1-9]d?)|(?:1[0-9]2)|(?:2[0-4][0-9])|(?:25[0-5]))[.]){3}((?:[1-9]d?)|(?:1[0-9]2)|(?:2[0-4][0-9])|(?:25[0-5])) 匹配密码是否符合格式:(必须同时包含数字、大小写字母、标点符号) (?=^.{6,8}$)(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*W+)(?!.*[^dWa-zA-Z]) 匹配年月日: (d{2}|d{4})-((0?[1-9])|(1[0-2]))-((0?[1-9])|([12][0-9])|(3[01])) 匹配时间: (((0?|1)[0-9])|(2[0-3])):([0-5][0-9]):([0-5][0-9]) 匹配座机号码:? ? ^0d{2}-[1-9]d{7}|^0d{3}-[1-9]d{6}? ? ? eclipse操作: private static void idcard() { (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- dojo.dijit.Button两次触发onclick事件
- ruby-on-rails – 将图像和文本放在link_to帮助器
- Match One of Several Alternatives (匹配多个选
- 庖丁解牛React-Redux(一): connectAdvanced
- ruby-on-rails – 如何在ruby中使用两个参数异步
- C#实现将网页保存成图片的网页拍照功能
- c# – 使用OData查询字符串时抛出MissingManifes
- ios – 无法从Xcode崩溃日志确定崩溃原因
- 安装clickhouse缺少依赖libicudata.so.50()(64bi
- vb.net – 在Visual Basic宏中访问Visual Studio