`
- 浏览:
366200 次
-
- import java.util.HashMap;
- import java.util.Map;
- import java.util.regex.Pattern;
- /**应用于http://www.bt285.cn BT下载 */
- public class RegexUtils {
- private static Pattern PATTERN_EMAIL = Pattern
- .compile("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$");
- private static Pattern PATTERN_TEL = Pattern
- .compile("^([0-9]{3,4}-)?[0-9]{7,8}$");
- private static Pattern PATTERN_MOBILE = Pattern
- .compile("^(\\+86)?0?1[3|5]\\d{9}$");
- private static Pattern PATTERN_ALPHA = Pattern.compile("^[A-Za-z]+$");
- private static Pattern PATTERN_DIGITAL = Pattern.compile("^\\d+$");
- private static Pattern PATTERN_CHINESE = Pattern
- .compile("^[\\u4E00-\\u9FA5]+$");
- private static Pattern PATTERN_IDCARD_15 = Pattern
- .compile("^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$");
- private static Pattern PATTERN_IDCARD_18 = Pattern
- .compile("^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}[\\d|x|X]$");
- private static Pattern PATTERN_IP = Pattern
- .compile("^((00\\d|1?\\d?\\d|(2([0-4]\\d|5[0-5])))\\.){3}(00\\d|1?\\d?\\d|(2([0-4]\\d|5[0-5])))$");
- private static Pattern PATTERN_TIME = Pattern
- .compile("((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])(\\:([0-5]?[0-9]))");
- private static Pattern PATTERN_REPEAT = Pattern.compile(".*(.).*\\1.*");
- public RegexUtils() {
- }
-
-
-
-
-
-
-
- public static boolean isEmail(String email) {
- if (email == null)
- return false;
- else
- return PATTERN_EMAIL.matcher(email).matches();
- }
- public static boolean isTelephone(String telephone) {
- if (telephone == null)
- return false;
- else
- return PATTERN_TEL.matcher(telephone).matches();
- }
- public static boolean isMobile(String mobile) {
- if (mobile == null)
- return false;
- else
- return PATTERN_MOBILE.matcher(mobile).matches();
- }
- public static boolean isAlpha(String alpha) {
- if (alpha == null)
- return false;
- else
- return PATTERN_ALPHA.matcher(alpha).matches();
- }
- public static boolean isDigital(String digital) {
- if (digital == null)
- return false;
- else
- return PATTERN_DIGITAL.matcher(digital).matches();
- }
- public static boolean isChinese(String chinese) {
- if (chinese == null)
- return false;
- else
- return PATTERN_CHINESE.matcher(chinese).matches();
- }
- public static boolean isDateTime(String dateTime) {
- return isDateTime(dateTime, "-");
- }
-
-
-
-
-
-
-
-
- public static boolean isDateTime(String dateTime, String partition) {
- if (dateTime == null || partition == null || "".equals(partition))
- return false;
- String s = "";
- char split = partition.charAt(0);
- if (split != '\\' && split != '/' && split != '-' && split != ' ')
- throw new IllegalArgumentException((new StringBuilder(
- "partition can not start with '")).append(partition)
- .append("'!").toString());
- s = (new StringBuilder(String.valueOf(s))).append(split).toString();
- StringBuilder part = new StringBuilder(
- "^((\\d{2}(([02468][048])|([13579][26]))");
- part.append(s);
- part.append("((((0?[13578]");
- part.append(")|(1[02]))");
- part.append(s);
- part.append("((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[4");
- part.append("69])|(11))");
- part.append(s);
- part.append("((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\");
- part
- .append("s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([1");
- part.append("3579][01345789]))");
- part.append(s);
- part.append("((((0?[13578])|(1[02]))");
- part.append(s);
- part.append("((");
- part.append("0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))");
- part.append(s);
- part.append("((");
- part.append("0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))");
- part.append(s);
- part.append("((");
- part.append("0?[1-9])|([1-2][0-9])|(30)))|(0?2");
- part.append(s);
- part.append("((0?[1-9])|(1[0-9])|(2[0-8]))))))");
- part
- .append("(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])\\:([0-5]?[0-9])))?");
- return Pattern.matches(part.toString(), dateTime);
- }
- public static boolean isDate(String date) {
- return isDate(date, "-");
- }
-
-
-
-
-
-
-
-
- public static boolean isDate(String date, String partition) {
- if (date == null || partition == null || "".equals(partition))
- return false;
- String s = "";
- char split = partition.charAt(0);
- if (split != '\\' && split != '/' && split != '-' && split != ' ')
- throw new IllegalArgumentException((new StringBuilder(
- "partition can not start with '")).append(partition)
- .append("'!").toString());
- s = (new StringBuilder(String.valueOf(s))).append(split).toString();
- StringBuilder part = new StringBuilder(
- "^((\\d{2}(([02468][048])|([13579][26]))");
- part.append(s);
- part.append("((((0?[13578]");
- part.append(")|(1[02]))");
- part.append(s);
- part.append("((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[4");
- part.append("69])|(11))");
- part.append(s);
- part.append("((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\");
- part
- .append("s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([1");
- part.append("3579][01345789]))");
- part.append(s);
- part.append("((((0?[13578])|(1[02]))");
- part.append(s);
- part.append("((");
- part.append("0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))");
- part.append(s);
- part.append("((");
- part.append("0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))");
- part.append(s);
- part.append("((");
- part.append("0?[1-9])|([1-2][0-9])|(30)))|(0?2");
- part.append(s);
- part.append("((0?[1-9])|(1[0-9])|(2[0-8]))))))$");
- return Pattern.matches(part.toString(), date);
- }
-
-
-
-
-
-
-
- public static boolean isTime(String time) {
- if (time == null)
- return false;
- else
- return PATTERN_TIME.matcher(time).matches();
- }
-
-
-
-
-
-
- public static boolean isIdCard(String card) {
- if (card == null)
- return false;
- int length = card.length();
- if (length == 15) {
- if (!PATTERN_IDCARD_15.matcher(card).matches())
- return false;
- if (!addressCode.containsKey(card.substring(0, 2)))
- return false;
- String birthday = (new StringBuilder("19")).append(
- card.substring(6, 8)).append("-").append(
- card.substring(8, 10)).append("-").append(
- card.substring(10, 12)).toString();
- if (!isDate(birthday))
- return false;
- } else if (length == 18) {
- if (!PATTERN_IDCARD_18.matcher(card).matches())
- return false;
- if (!addressCode.containsKey(card.substring(0, 2)))
- return false;
- String birthday = (new StringBuilder(card.substring(6, 10)))
- .append("-").append(card.substring(10, 12)).append("-")
- .append(card.substring(12, 14)).toString();
- if (!isDate(birthday))
- return false;
- int sum = 0;
- for (int i = 0; i < length - 1; i++)
- sum += (card.charAt(i) - 48) * idCoefficient[i];
- char mod = idMod[sum % 11];
- if (mod != Character.toLowerCase(card.charAt(17)))
- return false;
- } else {
- return false;
- }
- return true;
- }
-
-
-
-
-
-
- public static boolean isIP(String ip) {
- if (ip == null)
- return false;
- else
- return PATTERN_IP.matcher(ip).matches();
- }
-
-
-
-
-
-
- public static boolean hasRepeat(String repeat) {
- if (repeat == null)
- return false;
- else
- return PATTERN_REPEAT.matcher(repeat).matches();
- }
- public static Map<String, String> addressCode;
- public static int idCoefficient[] = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9,
- 10, 5, 8, 4, 2 };
- public static char idMod[] = { '1', '0', 'x', '9', '8', '7', '6', '5', '4',
- '3', '2' };
- static {
- addressCode = new HashMap<String, String>(35);
- addressCode.put("11", "\u5317\u4EAC");
- addressCode.put("12", "\u5929\u6D25");
- addressCode.put("13", "\u6CB3\u5317");
- addressCode.put("14", "\u5C71\u897F");
- addressCode.put("15", "\u5185\u8499\u53E4");
- addressCode.put("21", "\u8FBD\u5B81");
- addressCode.put("22", "\u5409\u6797");
- addressCode.put("23", "\u9ED1\u9F99\u6C5F");
- addressCode.put("31", "\u4E0A\u6D77");
- addressCode.put("32", "\u6C5F\u82CF");
- addressCode.put("33", "\u6D59\u6C5F");
- addressCode.put("34", "\u5B89\u5FBD");
- addressCode.put("35", "\u798F\u5EFA");
- addressCode.put("36", "\u6C5F\u897F");
- addressCode.put("37", "\u5C71\u4E1C");
- addressCode.put("41", "\u6CB3\u5357");
- addressCode.put("42", "\u6E56\u5317");
- addressCode.put("43", "\u6E56\u5357");
- addressCode.put("44", "\u5E7F\u4E1C");
- addressCode.put("45", "\u5E7F\u897F");
- addressCode.put("46", "\u6D77\u5357");
- addressCode.put("50", "\u91CD\u5E86");
- addressCode.put("51", "\u56DB\u5DDD");
- addressCode.put("52", "\u8D35\u5DDE");
- addressCode.put("53", "\u4E91\u5357");
- addressCode.put("54", "\u897F\u85CF");
- addressCode.put("61", "\u9655\u897F");
- addressCode.put("62", "\u7518\u8083");
- addressCode.put("63", "\u9752\u6D77");
- addressCode.put("64", "\u5B81\u590F");
- addressCode.put("65", "\u65B0\u7586");
- addressCode.put("71", "\u53F0\u6E7E");
- addressCode.put("81", "\u9999\u6E2F");
- addressCode.put("82", "\u6FB3\u95E8");
- addressCode.put("91", "\u56FD\u5916");
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
里边都是我自己整理的例子 大概试了30多个常用的 每个都附带个例子 例子都能跑通 1、输入 2 1.1)文本输入 2 1.2)表输入 3 2、输出 3 2.1)文本输出 3 2.2)输出表 4 3、连接 5 3. 1)“Merge” 5 3.2)Sorted ...
在执行命令文本时后,传递sql语句运用Regex re = new Regex(@"@[a-zA-Z0-9]") 则正则表达式进行配匹, * 提高安全性。 * Version: 1.0 * Created: 2012.08.02 * Author: liangjw * Company: Copyright (C) Create ...
下面是一些使用重复的例子: Windows\d+匹配Windows后面跟1个或更多数字 ^\w+匹配一行的第一个单词(或整个字符串的第一个单词,具体匹配哪个意思得看选项设置) 字符类 要想查找数字,字母或数字,空白是很简单的,...
目前为止,许多编程语言和工具都包含对正则表达式的支持,C#也不例外,C#基础类库中包含有一个命名空间(System.Text.RegularExpressions)和一系列可以充分发挥规则表达式威力的类(Regex、Match、Group等)。...
常用的元字符和特性... 113 字符表示法... 115 字符组及相关结构... 118 锚点及其他“零长度断言” 129 注释和模式量词... 135 分组,捕获,条件判断和控制... 137 高级话题引导... 142 第4章:表达式的匹配...
我们筛选出了八个常用的概念,并配上实例解析,每个例子都是满足某种复杂要求的简单写法。如果你对正则的基本概念尚缺乏了解,请先阅读 这篇文章,或者 这个教程,或者维基条目。 这里的正则语法适用于PHP,
筛选出了八个常用的概念,并配上实例解析,每个例子都是满足某种复杂要求的简单写法。如果你对正则的基本概念尚缺乏了解,请先阅读这篇文章,或者这个教程,或者维基条目。 这里的正则语法适用于php,与perl兼容。 ...
subject-principal-regex 属性 B.1.11.2. user-service-ref 属性 B.1.12. <openid-login> 元素 B.1.13. <logout> 元素 B.1.13.1. logout-url 属性 B.1.13.2. logout-success-url 属性 B.1.13.3. ...
本文介绍了最常用的一些移动命令,在下篇文章中将介绍更高级的移动方法。 vim使用进阶: 指随意动,移动如飞 (二) 本文介绍如何在vim中移动,主要涉及如何使用跳转表(jump-motions)、使用标记(mark)、使用折行(fold...
subject-principal-regex 属性 B.1.11.2. user-service-ref 属性 B.1.12. <openid-login> 元素 B.1.13. <logout> 元素 B.1.13.1. logout-url 属性 B.1.13.2. logout-success-url 属性 B.1.13.3. ...
subject-principal-regex属性 B.1.11.2. user-service-ref属性 B.1.12. 元素 B.1.13. 元素 B.1.13.1. logout-url属性 B.1.13.2. logout-success-url属性 B.1.13.3. invalidate-session属性 B.1.14. 元素 B....
使一个Dom对象成为一个Jquery对象很简单,通过下面一些方式(只是一部分): 代码 var a = $("#cid"); var b = $("<p>hello</p>"); var c = document.createElement("table"); var tb = $(c); 编辑本段代替body...
举个例子var example = { text: 'Hello world!', date: '2015-07-07', comments: null, }, rules = { text: 'required|string', date: 'date|date_format:yyyy-MM-dd', comments: '...
1.5常用Api 类名称 描述 1.5.1项目 1.5.2项 尽早解决。 1.6应用 1.6.1发送get请求获取网页内容 HttpClient client = new HttpClient(); //设置代理服务器地址和端口 //client....
他们分别表示:"zero or more", "one or more", and "zero or one." 这里是一些例子: "ab*": 匹配字符串a和0个或者更多b组成的字符串("a", "ab", "abbb", etc.); "ab+": 和上面一样,但最少有一个b ("ab", ...
6.3.3 RegEx注册表访问组件 207 6.4 小结 209 第7章 调试和错误处理 210 7.1 错误的种类 211 7.1.1 语法或“编译”错误 211 7.1.2 语义或“运行期”错误 215 7.2 各种运行期错误 218 7.2.1 逻辑错误 219 ...
6.3.3 RegEx注册表访问组件 207 6.4 小结 209 第7章 调试和错误处理 210 7.1 错误的种类 211 7.1.1 语法或“编译”错误 211 7.1.2 语义或“运行期”错误 215 7.2 各种运行期错误 218 7.2.1 逻辑错误 219 ...
22.常用的调用WebService的方法有哪些? 答:1.使用WSDL.exe命令行工具。 2.使用VS.NET中的Add Web Reference菜单选项 23..net Remoting 的工作原理是什么? 答:服务器端向客户端发送一个进程编号,一个程序域...
如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 apache网站下下载 在这是junit测试单元类我就不提交了,在main()方法中有几个小...