java正则表达式
package demo.java.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * User: liuwentao * Date: 2011-4-15 11:18:14 * <p/> * 说明: */ public class RegexUtils { public static void main(String[] args) { RegexUtils.checkEmail("[email protected]"); } /** * 验证 email是否有效 * @param mail * @return */ public static boolean checkEmail(String mail) { String regex = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"; return regexMatch(regex,mail); } /** * 通用是否匹配方法 * @param regex * @param input * @return */ public static boolean regexMatch(String regex,CharSequence input){ Pattern p = Pattern.compile(regex); Matcher m = p.matcher(input); boolean b = m.find(); System.out.println("b=" + b + ", input=" + input + ", regex=" + regex); return b; } }
类似的还有:
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
[\u4e00-\u9fa5]//匹配中文字符的正则表达式:
(.*)(\.jpg|\.bmp)$//只能是jpg和bmp格式
^\d{4}\-\d{1,2}-\d{1,2}$//只能是2004-10-22格式
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url
正则表达式--验证手机号码:13[0-9]{9}
实现手机号前带86或是+86的情况:^((\+86)|(86))?(13)\d{9}$
电话号码与手机号码同时验证:(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9})
提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F)*=*('|")?(\w|\\|\/|\.)+('|"|*|>)?
提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
提取信息中的图片链接:(s|S)(r|R)(c|C)*=*('|")?(\w|\\|\/|\.)+('|"|*|>)?
提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
提取信息中的中国手机号码:(86)*0*13\d{9}
提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
提取信息中的中国身份证号码:\d{18}|\d{15}
提取信息中的整数:\d+
提取信息中的浮点数(即小数):(-?\d*)\.?\d+
提取信息中的任何数字:(-?\d*)(\.\d+)?
提取信息中的中文字符串:[\u4e00-\u9fa5]*
提取信息中的双字节字符串(汉字):[^\x00-\xff]*