Java 常用正则表达式

转载 2015年11月18日 11:23:04
Java 常用正则表达式

1. 身份证号码:
1) 身份证正则表达式(15位) ^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$
forJava:  Pattern p = Pattern.compile("^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$");
------ ------ ------ 说明 start ------ ------ ------
15位身份证号码各位的含义: 
1-2位省、自治区、直辖市代码; 
3-4位地级市、盟、自治州代码; 
5-6位县、县级市、区代码; 
7-12位出生年月日,比如670401代表1967年4月1日,与18位的第一个区别; 
13-15位为顺序号,其中15位男为单数,女为双数;
------ ------ ------ 说明 end ------ ------ ------
2) 身份证正则表达式(18位)^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$
forJava:  Pattern p = Pattern.compile("^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{4}$");
------ ------ ------ 说明 start ------ ------ ------
18位身份证号码各位的含义: 
1-2位省、自治区、直辖市代码; 
3-4位地级市、盟、自治州代码; 
5-6位县、县级市、区代码; 
7-14位出生年月日,比如19670401代表1967年4月1日; 
15-17位为顺序号,其中17位(倒数第二位)男为单数,女为双数; 
18位为校验码,0-9和X。作为尾号的校验码,是由把前十七位数字带入统一的公式计算出来的,计算的结果是0-10,
如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位。X是罗马数字的10,用X来代替10。
------ ------ ------ 说明 end ------ ------ ------

2. 电话号码:
1) 移动电话:  ^((13[0-9])|(15[^4,\D])|(18[0-9]))\d{8}$
------ ------ ------ 说明 start ------ ------ ------
中国电信手机号码开头数字 133、1349、153、180、181、189
中国联通手机号码开头数字 130、131、132、145、155、156、185、186
中国移动手机号码开头数字 1340-1348、135、136、137、138、139、147、150、151、152、157、158、159、182、183、184、187、188 
补充:14开头的号码以前为上网卡专属号段,如联通的是145,移动的是147等等。不过现在14开头的号码也可以使用语音通话等全部业务,不受限制。
------ ------ ------ 说明 end ------ ------ ------
forJava:  Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"); 
2) 固定电话:  
--------------- 区号-号码 -------------------
String regex1 = "\\(?(010|021|022|023|024|025|026|027|028|029|852)?\\)?-?\\d{8}";//3位区号,8位号码
String regex2 = "\\(?(0[3-9][0-9]{2})?\\)?-?\\d{7,8}";//4位区号
String regex3 = "(\\(?(010|021|022|023|024|025|026|027|028|029|852)?\\)?-?\\d{8})|(\\(?(0[3-9][0-9]{2})?\\)?-?\\d{7,8})";
--------------- 加上分机号 (\\-?[0-9]{1,4})? ------- 区号-号码-分机号 ---------------
String regex1 = "\\(?(010|021|022|023|024|025|026|027|028|029|852|)\\)?-?\\d{8}(\\-?[0-9]{1,4})?";//3位区号
String regex2 = "\\(?(0[3-9][0-9]{2})\\)?-?\\d{7,8}(\\-?[0-9]{1,4})?";//4位区号
String regex3 = "(\\(?(010|021|022|023|024|025|026|027|028|029|852|)\\)?-?\\d{8}(\\-?[0-9]{1,4})?)|(\\(?(0[3-9][0-9]{2})\\)?-?\\d{7,8}(\\-?[0-9]{1,4})?)";

3. IP地址:
(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3}
forJava:  (25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)){3}

4. 邮箱:
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
forJava:  p = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");

5. 日期: ------------- 年-月-日: ------------------
年: //年份为四位,且不能是0000
([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})
月-日 //未考虑闰年.
((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))
年-月-日
Pattern.compile("([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))");//说明: 年份为四位,且不能是0000,之后是月日,未考虑闰年.

6. 中文: [\u4e00-\u9fa5]
forJava:  p = Pattern.compile("^[\u4e00-\u9fa5]+$");

======================== 说明 ==================
1. \w ---> 单词字符[a-zA-Z_0-9],即Java中的标识符
\w+ ---> 一个或多个单词字符[a-zA-Z_0-9]{1,}
2. [-+.]  ---> -或+或. 单个字符
3. X* ---> 零次或多次
X? ---> 零次或一次
X+ ---> 一次或多次
4. 需要转义的特殊字符: 
\ ---> \\
[ ---> \[
] ---> \]
( ---> \(
) ---> \)
{ ---> \{
} ---> \}
. ---> \.
* ---> \*
? ---> \?
+ ---> \+
^ ---> \^
$ ---> \$
| ---> \|
5. 常用正则表达式查询地址:
http://www.ostools.net/regex#

java常用正则表达式

JAVA 中一些常用的正则表达式
  • tiandiwuya
  • tiandiwuya
  • 2016年07月26日 13:55
  • 851

常用正则表达式汇总,以java作为测试

package cn.pzh.demo;import java.util.Scanner; import java.util.regex.Pattern;public class PatternDem...
  • xiaoshiyiqie
  • xiaoshiyiqie
  • 2016年10月18日 20:13
  • 1225

JavaWeb——JavaScript常用正则表达式

JavaScript常用正则表达式
  • RamProg
  • RamProg
  • 2015年09月11日 23:34
  • 200

Java常用工具类三 -- 正则表达式

1.抓取网页email地址实例 实现思路: 1、使用java.net.URL对象,绑定网络上某一个网页的地址 2、通过java.net.URL对象的openConnectio...
  • he90227
  • he90227
  • 2014年07月13日 11:53
  • 1403

java常用正则表达式模板

下面是我积累的最常用也说明的最清楚的java正则表达式的编写 并给出了相关的表达式每一段这样写的注释,初学java正则的同学,一定能找到感觉和方向。 在后面我附上了自己调试的正则匹配代码,大家可以参考...
  • zfszhangyuan
  • zfszhangyuan
  • 2016年09月06日 16:50
  • 4193

Java与正则表达式

Java与正则表达式标签: Java基础正则 正如正则的名字所显示的是描述了一个规则, 通过这个规则去匹配字符串. 学习正则就是学习正则表达式的语法规则 正则语法普通字符字母, 数字, 汉字, 下...
  • hanqing280441589
  • hanqing280441589
  • 2016年01月03日 07:59
  • 5130

正则表达式中问号的用法

1、需求背景 由于最近工作需要,要从网页链接中找到
  • maylorChao
  • maylorChao
  • 2014年05月28日 11:33
  • 5597

最常用的详细正则表达式大全

最常用的详细正则表达式大全 正则令人头疼, 很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里...
  • wuchengzeng
  • wuchengzeng
  • 2014年02月25日 10:41
  • 3968

js常用正则表达式

/判断输入内容是否为空     function IsNull(){         var str = document.getElementById('str').value.trim();   ...
  • w2393040183
  • w2393040183
  • 2016年07月23日 16:27
  • 858

最全的常用正则表达式大全

一、校验数字的表达式 1 数字:^[0-9]*$  2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$  4 m-n位的数字:^\d{m,n}$  5 零和非零开头的数字:...
  • CareChere
  • CareChere
  • 2016年08月25日 16:17
  • 880
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java 常用正则表达式
举报原因:
原因补充:

(最多只允许输入30个字)