`
- 浏览:
372901 次
-
- 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
相关推荐
下面我们将深入探讨Java正则表达式的基本概念、常用方法以及RegexDemo.jpx项目中的可能示例。 1. **基本概念** - **模式(Pattern)**: 正则表达式的模板,用于描述字符串的匹配规则。 - **匹配器(Matcher)**: ...
2. **匹配器(Matcher)**:`std::regex_match` 和 `std::regex_search` 是两种常用的匹配器,分别用于判断整个字符串是否匹配和字符串中是否存在匹配部分。 3. **迭代器(Iterator)**:`std::sregex_iterator` 和...
6. **教程资源**:附带的 `RegExpHelp.CHM` 文件是一个详细的正则表达式帮助文档,包含了大量的例子和解释,帮助初学者快速掌握正则表达式的基本概念和高级特性,如字符类、量词、预查、环视等。 7. **便捷的界面**...
以下是我整理的一些正则表达式的常用例子,旨在帮助理解其基本用法和功能。 1. **基本匹配** - 匹配单个字符:`\d` 代表数字,`\w` 代表字母或数字,`\s` 代表空白符。 - 匹配范围:`[a-z]` 匹配小写字母,`[A-Z]...
以下是一些关于Regex类的常用匹配方法的详细说明: 1. **匹配验证** - `IsMatch` 方法用于检查字符串是否符合指定的正则表达式模式。例如,在示例1中,我们检查字符串是否包含特定的敏感词"孙权",如果匹配成功,...
有两个常用的构造函数: 1. `Regex regex = new Regex("pattern")`,这里的"pattern"是你要匹配的正则表达式字符串。 2. `Regex regex = new Regex("pattern", RegexOptions)`,除了正则表达式字符串外,还可以传入...
Python库Hypothesis-Regex是Python开发者常用的工具之一,它主要为Python的Hypothesis库提供了正则表达式策略。Hypothesis是一个强大的基于类型推断的测试数据生成框架,而Hypothesis-Regex扩展了这个框架,使得我们...
这篇博文“PHP 常用的正则表达式例子”很可能提供了一些实用的代码示例,帮助开发者更好地理解和应用正则表达式。虽然没有直接的描述内容,我们可以根据标题推测文章可能涵盖了以下关键知识点: 1. **正则表达式...
- **regex**:正则表达式库,C++11引入的新特性,用于文本模式匹配和搜索。 - **io**:输入/输出流相关代码,如文件I/O和标准输入输出的处理。 通过学习这个代码集合,你可以掌握C++ STL的核心概念,提升你的C++...
正则表达式使用一系列的特殊字符来构建模式,以下是一些常用元字符及其含义: - `^`:匹配字符串的开始。 - `$`:匹配字符串的结束。 - `{n,m}`:匹配前面的字符至少n次,至多m次。 - `[abc]`:匹配括号内的任一...
以下是一些关键知识点: 1. **创建正则表达式对象**: 在C#中,我们首先需要创建一个`Regex`对象,传入正则表达式模式作为构造函数的参数。例如: ```csharp Regex regex = new Regex("模式"); ``` 此处的...
里边都是我自己整理的例子 大概试了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 ...
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、数据提取等IT领域。在这个“常用正则表达式HTML,JAVA合集”中,我们主要关注的是HTML和Java环境下的正则...
const regex = /[\u4e00-\u9fa5]/g; const str = "你好世界"; const result = str.match(regex); console.log(result); // 输出:["你", "好", "世", "界"] ``` ##### 2. 匹配双字节字符(包括汉字在内):`[^\x...
以上就是从标题和描述中提炼出的一些关键知识点,涵盖了ASP数据库连接、XML文件读取、正则表达式应用以及浮动广告的实现,同时也提及了PHP的一些常用函数。这些技能在Web开发中非常实用,能够帮助开发者提高工作效率...
这个例子中,首先通过RequiredString确保电话号码字段不为空;然后通过Regex校验器确保电话号码全部由数字组成。 #### 总结 通过上述介绍可以看出,Struts框架提供了一系列丰富的校验器来帮助开发者实现前端数据的...
- **零宽度断言**:`\b`(单词边界)是零宽度断言的例子,还有`^`(行首)、`$`(行尾)、`(?=pattern)`(正向前瞻)和`(?!pattern)`(负向前瞻)等。 - **回溯控制**:使用`\G`可以匹配上一次匹配的位置,避免...
### JAVA正则表达式四种常用功能详解 #### 一、查询功能 正则表达式的查询功能可以帮助我们在文本中快速定位特定的模式。这种功能在文本处理、数据验证以及搜索算法中非常常见。 **示例代码**: ```java String ...
在类的定义前,有注释提供了关于该类的一些基本信息,例如作者、版本等。 ### 2. 导入(Import)语句 在Java程序中,为了使用其他包中的类或者接口,我们需要通过导入语句来引入它们。例如: - `import java.util....
### JAVA正则表达式的四种常用功能 在Java中,正则表达式是一种强大的文本处理工具,可以用于字符串的搜索、替换等操作。本文将详细解释Java正则表达式的四种常见功能:匹配、分组、分割以及替换,并通过具体的示例...