Java的正则表达式的存在是为了按照某种模式去匹配Java中的一类字符串的公式。他包括普通字符和元字符,普通字符包括字母和数字,元字符则具有某些特殊的含义。正则表达式不管是在.net还是Java平台表达的意思都是一样的。
以下列出了一些Java中常用的正则表达式的匹配条件:
一个或多个汉字^[\u0391-\uFFE5]+$ 邮政编码^[1-9]\d{5}$QQ号码^[1-9]\d{4,10}$ 邮箱^[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\.){1,3}[a-zA-z\-]{1,}$ 用户名(字母开头 + 数字/字母/下划线)^[A-Za-z][A-Za-z1-9_-]+$手机号码^1[3|4|5|8][0-9]\d{8}$ URL^((http|https)://)?([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ 18位身份证号^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X|x)?$那么我们还有两个例子来说明Java正则表达式在Java中对字符串的操作
① 验证邮箱格式是否正确
String str = "service@xsoftlab.net";
// 邮箱验证规则 String regEx = "[a-zA-Z_]{1,}[0-9]{0,}@(([a-zA-z0-9]-*){1,}\\.){1,3}[a-zA-z\\-]{1,}" ; // 编译正则表达式 Pattern pattern = Pattern.compile(regEx); // 忽略大小写的写法 // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(str); // 字符串是否与正则表达式相匹配 boolean rs = matcher.matches(); System.out.println(rs); ②在字符串中查询字符串或者字符// 要验证的字符串
String str = "baike.xsoftlab.net" ; // 正则表达式规则 String regEx = "baike.*" ; // 编译正则表达式 Pattern pattern = Pattern.compile(regEx); // 忽略大小写的写法 // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(str); // 查找字符串中是否有匹配正则表达式的字符/字符串 boolean rs = matcher.find(); System.out.println(rs); 以上是对正则表达式的理解。