送女朋友定情信物图片:身份证的正则表达式
来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 22:29:17
判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日。 收藏
判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日。view plaincopy to clipboardprint?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
*1.判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日。
*
* 我们可以用正则表达式来定义复杂的字符串格式,(\d{17}[0-9a-zA-Z]|\d{14}[0-9a-zA-Z])可以用来判断是否为合法的15位或18位身份证号码。
* 因为15位和18位的身份证号码都是从7位到第12位为身份证为日期类型。这样我们可以设计出更精确的正则模式,使身份证号的日期合法,
* 这样我们的正则模式可以进一步将日期部分的正则修改为[12][0-9]{3}[01][0-9][123][0-9],当然可以更精确的设置日期。
* Aug 3, 2010
*/
public class RegexTest {
/**
* @param args
*/
public static void main(String[] args) {
// 测试是否为合法的身份证号码
String[] strs = { "130681198712092019", "13068119871209201x",
"13068119871209201", "123456789012345", "12345678901234x",
"411002198708260016" };
Pattern p1 = Pattern.compile("(\\d{17}[0-9a-zA-Z]|\\d{14}[0-9a-zA-Z])");
for (int i = 0; i < strs.length; i++) {
Matcher matcher = p1.matcher(strs[i]);
System.out.println(strs[i] + ":" + matcher.matches());
}
Pattern p2 = Pattern.compile("\\d{6}(\\d{8}).*"); // 用于提取出生日字符串
Pattern p3 = Pattern.compile("(\\d{4})(\\d{2})(\\d{2})");// 用于将生日字符串进行分解为年月日
for (int i = 0; i < strs.length; i++) {
Matcher matcher = p2.matcher(strs[i]);
boolean b = matcher.find();
if (b) {
String s = matcher.group(1);
Matcher matcher2 = p3.matcher(s);
if (matcher2.find()) {
System.out
.println("生日为" + matcher2.group(1) + "年"
+ matcher2.group(2) + "月"
+ matcher2.group(3) + "日");
}
}
}
}
} 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gang00ge/archive/2010/08/03/5785034.aspx
判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日。view plaincopy to clipboardprint?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
*1.判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日。
*
* 我们可以用正则表达式来定义复杂的字符串格式,(\d{17}[0-9a-zA-Z]|\d{14}[0-9a-zA-Z])可以用来判断是否为合法的15位或18位身份证号码。
* 因为15位和18位的身份证号码都是从7位到第12位为身份证为日期类型。这样我们可以设计出更精确的正则模式,使身份证号的日期合法,
* 这样我们的正则模式可以进一步将日期部分的正则修改为[12][0-9]{3}[01][0-9][123][0-9],当然可以更精确的设置日期。
* Aug 3, 2010
*/
public class RegexTest {
/**
* @param args
*/
public static void main(String[] args) {
// 测试是否为合法的身份证号码
String[] strs = { "130681198712092019", "13068119871209201x",
"13068119871209201", "123456789012345", "12345678901234x",
"411002198708260016" };
Pattern p1 = Pattern.compile("(\\d{17}[0-9a-zA-Z]|\\d{14}[0-9a-zA-Z])");
for (int i = 0; i < strs.length; i++) {
Matcher matcher = p1.matcher(strs[i]);
System.out.println(strs[i] + ":" + matcher.matches());
}
Pattern p2 = Pattern.compile("\\d{6}(\\d{8}).*"); // 用于提取出生日字符串
Pattern p3 = Pattern.compile("(\\d{4})(\\d{2})(\\d{2})");// 用于将生日字符串进行分解为年月日
for (int i = 0; i < strs.length; i++) {
Matcher matcher = p2.matcher(strs[i]);
boolean b = matcher.find();
if (b) {
String s = matcher.group(1);
Matcher matcher2 = p3.matcher(s);
if (matcher2.find()) {
System.out
.println("生日为" + matcher2.group(1) + "年"
+ matcher2.group(2) + "月"
+ matcher2.group(3) + "日");
}
}
}
}
} 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gang00ge/archive/2010/08/03/5785034.aspx
身份证的正则表达式
正则表达式
谈一谈QTP中正则表达式的应用
强悍的电子邮件地址(email address)正则表达式
匹配固话的正则表达式
常用HTML正则表达式
常用正则表达式
java正则表达式(2)
正则表达式 - RegexBuddy教程
常用正则表达式1
正则表达式Sed
常用正则表达式
正则表达式参考文档
Java正则表达式入门
JAVA正则表达式
Oracle正则表达式规则
深入浅出之正则表达式
apache的Jakarta-ORO库 的正则表达式的使用
关于正则表达式的贪婪与非贪婪模式
常用的JavaScript验证正则表达式 - JavaScript / Regular
只能输入正整数 已经常用的正则表达式
C#正则表达式整理备忘
正则表达式30分钟入门教程
ASP.NET 中的正则表达式