Java正则表达式举例
来源:互联网 发布:淘宝店铺优惠券怎么弄 编辑:程序博客网 时间:2024/05/16 12:39
有关正则表达式的教程,这里不再多说。只是简单说一下在编程过程中常遇到的一些问题的解决方案。
首先是验证问题:
验证问题很容易。可以有几种方法
1.直接用String对象提供的matches(String regx)方法。其中regx可以是一个正则表达式
String test0 = "123456";
System.out.println(test0.matches(reg0));
2.应用java.util.regex.Pattern和java.util.regex.Matcher对象
String test0 = "123456";
Pattern pattern0 = Pattern.compile(reg0);
Matcher matcher0 = pattern0.matcher(test0);
System.out.println(matcher0.find());
上面两种方法得出的结果当然是一样的了。方法二看似很麻烦,但它却有更强大的功能。就是下面要说的获取
获取问题也有几种方法,至少我知道就有两种。也和上面差不多。
1.应用String提供的replace(String regx)或replaceAll(String regx)方法。两者的区别一看就知道了。下面给个例子
//reg0匹配:一个数字+abc+一个数字
String test0 = "sd4abc56gs";
System.out.println(test0.replaceAll(reg0,"A"));
//打印出:sdA6gs
//也即是匹配reg0的字段"4abc5"被代换成了"A"
System.out.println(test0.replaceAll(reg0,"$1"));
//打印出:sdabc6gs
//也即是匹配reg0的字段"4abc5"被代换成了"$1"也就是正则表达式中匹配括号内的内容
但是,如果要取得匹配组$1的内容,这样匹配后再代换的效率非常低。Java也提供另一种高效的方法。也就是
2.应用java.util.regex.Pattern和java.util.regex.Matcher对象
//reg0匹配:一个数字+abc+一个数字
String test0 = "4abc56gs";
Pattern pattern0 = Pattern.compile(reg0);
Matcher matcher0 = pattern0.matcher(test0);
if(matcher0.find()) {
System.out.println(matcher0.group(1));
}
//打印出:abc
下面是些常用的正则表达式:
身份证号码: 这是我自己写的包含了15位和18位,还有x|y的情况,但无法对数据的合理性进行检查,比如:111111111111111111
/d{15}(/b|(/d{3}|/d{2}(x|y|X|Y))/b)
日期:这是网上一位牛人写的。一个字--强!(2000-2-29过不了)
^((((1[6-9]|[2-9]/d)/d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]/d|3[01]))|(((1[6-9]|[2-9]/d)/d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]/d|30))|(((1[6-9]|[2-9]/d)/d{2})-0?2-(0?[1-9]|1/d|2[0-8]))|(((1[6-9]|[2-9]/d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$
时间:这是我自己写的24小时制,包含了35小时这种错误的检查
(20|21|22|23|[0-1]?/d):[0-5]?//d:[0-5]?/d$
Email:不知道哪里来的了。反正不是很严密
^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$
/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)* (这个是刚从网上找的,还没有验证过正确性)
手机号码:自己写的,包含以0开头或没有。以13形状的,好像最近开通了新的号码段
/b0?13/d{9}/b
URL地址:刚从网上找的,未验证
http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?
IP地址:刚从网上找的,未验证
^(/d+)/.(/d+)/.(/d+)/.(/d+)$
--原创文章,可以随意复制发表,但请注明出处与作者
BY YCOE
- Java正则表达式举例
- 正则表达式举例
- 常用正则表达式举例
- 正则表达式举例讲解
- 常用正则表达式举例
- 正则表达式的举例
- 正则表达式举例(上)
- 正则表达式举例(下)
- 正则表达式举例
- boost正则表达式举例
- 常用正则表达式举例收藏
- Javascript正则表达式常用举例
- sscanf正则表达式用法举例
- c#正则表达式用法举例
- JavaScript 正则表达式 简单举例
- 正则表达式应用的举例
- JavaScript中使用正则表达式举例
- 正则表达式语法解释及举例
- SQL Server 18452登录错误
- (转)译:理解 Win32 "OutputDebugString"
- 如何检测内存泄漏 int _CrtSetDbgFlag( int newFlag );
- 什么是ioc?(转)
- 老罗又他妈放厥词了,呵呵
- Java正则表达式举例
- 理解SOA概念的三个比喻
- 功夫世界外挂
- Sql Server 中一个非常强大的日期格式化函数
- const修饰常量
- 如何升级XP到SP3
- Install OpenSolaris PV On Xen
- 五种常见的ASP.NET安全缺陷
- 10年内IT产业面临3大新商机