正则表达式尝试

package Test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
* 邮箱:@前面包含5-14位数字,字母下划线,@后面是qq,126,163,yahoo,gmail,sina,然后是com或者cn。
* 电话号码:11位数字,开头两位是13,15,16,17,18,19
* 身份证18位:5开头;第7、8位19或者20;第11位0或者1;第13位0或1或2或3;第18位可能为x
* 域名:www开头,然后是个“.”,后面是数字或者字母或者下划线(不限长度),然后是“.”,com或者cn或者com.cn。
*/
public class Test1 {
public static void main(String[] args) {
Pattern p1 = Pattern.compile("^\\w{5,14}@(qq|126|163|yahoo|gmail|sina)\\.(com|cn)$");
Matcher m1 = p1.matcher("[email protected]");
System.out.println(m1.matches());

Pattern p2 = Pattern.compile("^1(3|4|5|6|7|8)\\d{9}$");
Matcher m2 = p2.matcher("15623479501");
System.out.println(m2.matches());

Pattern p3 = Pattern.compile("^5\\d{5}(19|20)\\d{2}(0|1)\\d(0|1|2|3)\\d{4}(X|[0-9])$");
Matcher m3 = p3.matcher("54614719281231468X");
System.out.println(m3.matches());

Pattern p4 = Pattern.compile("^(WWW|www)\\.\\w{1,}\\.(com|cn|com.cn)$");
Matcher m4 = p4.matcher("www.dgjfgkhkg345476.com.cn");
System.out.println(m4.matches());
}
}

  

1、  “.”  “+”  “?”  “*”  等的匹配,在前面加  “\\”

2、 身份证里面日期的匹配有个小问题,比如 19900228,当月份为02时,日期不能超过28,其他月份也有类似限制,这在正则表达式里面有没有快捷的解决方案(除了逐月写出外)?

时间: 2024-10-12 14:01:08

正则表达式尝试的相关文章

Javascript之高效编程

前言: Javascript绝对是最火的编程语言之一,一直具有很大的用户群,具有广泛的应用前景.而在前端开发中,它也是三驾马车之一,并且是最重要的一环.要想给用户提供更流畅的操作体验,更友好的交互,对Javascript程序进行优化.提高执行效率也就必不可少.那么我们怎么样才能编写出高性能的JS程序呢?本文是在阅读<高性能网站建设进阶指南>和<高性能JavaScript>之后写的一篇总结,自己也加深一下印象,希望可以帮助大家! 一.数据访问      1.高效数据存储       

UrlRewrite(URL重写)--ASP.NET中的实现

概述 今天看了下URL重写的实现,主要看的是MS 的URL Rewrite. URL重写的优点有:更友好的URL,支持老版本的URL URL重写的缺点有:最主要的缺点是性能低下,因为如果要支持无后缀的URL(但更多的情况是我们要支持这种方式)就必须在IIS中配置所有的URL(包括js,css,image)都要转发到aspnet_isapi中,解决方法可以参见 慎用url重写:还有一个性能问题是,根据源代码,在匹配url时,用正则表达式尝试匹配每一个规则,直至有一个匹配成功,或都匹配不成功才结束.

[译]理解 ECMAScript 6 基本知识(未完)

基本知识 ECMAScript 6在ECMAScript 5之上做了大量的改变.一些改变很大,比如添加新的类型或者语法,而其它的非常小,提供了语言之上的渐进改进.这个章节包含了那些渐进改进,它们可能不会获得很多关注但提供了一些重要的功能,使得某些类型的问题更容易解决. 更好的Unicode支持 ECMAScript 6之前, JavaScript是完全基于16位字符编码的想法.所有的字符串属性和方法,比如length与charAt() ,是基于每一个16位序列表示一个字符这一想法.ECMAScr

一个可以使用多个正则表达式进行多次尝试匹配,并进行替换的Excel VBA自定义函数(UFD)

以下代码可使用多个正则表达式对目标单元格进行多次匹配尝试,如匹配成功,将停止尝试匹配其他正则表达式,并且使用该正则表达式相对应的替换表达式进行替换,返回替换结果. 使用前需要做Early Binding.即在VBE编辑器中,选择菜单栏中的Tool - Reference,如图: 弹出如下图的对话框后,选择Microsoft VBSscript Regular Expression 5.5,打钩,点OK. 此UDF的使用方法为: Text参数:需要进行处理的原始文字或单元格. MatchPatte

python成长之路第三篇(2)_正则表达式

打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.什么是正则表达式,python中得正则简介 2.re模块的内容 3.小练习 一.什么是正则表达式(re) 正则表达式相信很多人都熟悉了,在python中正则表达式的支持是通过re(regular expression)模块,正则表达式是可以匹配文本片段的模式,简单的是正则表达式就是普通的字符串,可以处理字符串.也就是说正则表达式的存在就是来处理文本字符串的 下面来熟悉下正则中的几个概念: 1.通配符 通配符是

Java正则表达式Pattern和Matcher详解

java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介:  java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 它包括两个类:Pattern和Matcher . Pattern: 一个Pattern是一个正则表达式经编译后的表现模式. Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查. 首先一个Pattern实例订制了一个所用语法与PERL的类

python中的正则表达式

python的正则表达式在http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html中讲解的比较详细. 本文需要补充以下几个问题: 1.python正则表达式中的贪婪与非贪婪: python正则表达式默认是贪婪的,也就是说尽可能多的匹配.如果想让正则表达式变为不贪婪,可加限定符?. *?.+?.??.和{m,n}?,这样就尽可能小的匹配了. 2.正则表达式中的环视结构: 环视结构不匹配任何字符,只匹配文本中的特定位置. 类型 正则表达式

正则表达式(2)

一.正则表达式-单行与多行模式 补充: .点 匹配除"\r\n"之外的任何单个字符.要匹配包括"\r\n"在内的任何字符,请使用像"[\s\S]"的模式. 开启多行模式 ^ 可以匹配字符串开头(字符串的开始位置),也可以匹配行的开头(即换行符\n之后的位置) $ 可以匹配字符串结尾(字符串的结束位置), 也可以匹配行的结尾(即换行符\n之前的位置) 关闭多行模式 ^ 只能匹配字符串开头 $ 只能匹配字符串结尾 正则表达式:(?m)^\d\w+(\

JS正则表达式完整教程(略长)

JS正则表达式完整教程(略长) 引言 亲爱的读者朋友,如果你点开了这篇文章,说明你对正则很感兴趣. 想必你也了解正则的重要性,在我看来正则表达式是衡量程序员水平的一个侧面标准. 关于正则表达式的教程,网上也有很多,相信你也看了一些. 与之不同的是,本文的目的是希望所有认真读完的童鞋们,都有实质性的提高. 本文内容共有七章,用JavaScript语言完整地讨论了正则表达式的方方面面. 如果觉得文章某块儿没有说明白清楚,欢迎留言,能力范围之内,老姚必做详细解答. 具体章节如下: 引言 第一章 正则表