Java正则表达式
1、句点符号(.)
句点符号可以匹配所有的任意的字符,甚至是换行符。
正则表达式:t.n
匹配:tan, Ten, tin等等
但需要注意的是:句点符号只能匹配一个任意的字符。
如:t.n对teen的匹配为false
2、方括号符号([])
为了解决句点符号匹配范围过于广泛的这一问题,可以使用方括号[],里面指定的有意义的字符。只有方括号里面指定的字符才能匹配。
正则表达式:t[aeio]n
匹配: tan, Ten , tin, ton
同样,方括号中只能匹配一个字符。如上正则表达式 t[aeio]n 对taen的匹配为false
3、“或”符号
“或”符号的运算和方括号的使用相似,只是“或”可以对表达式中的字符分组,换句话说就是“或”可以匹配多个字符,而方括号只能匹配单个字符。
正则表达式:t(a|e|i|o|oo)n
匹配: tan, ten, tin ,ton , toon
4、表示匹配的次数的符号
下面的符号分别显示匹配的次数,这些符号用来确定紧靠该符号左边的符号的出现的次数
符号 次数
*
符号 |
次数 |
* |
0次或者多次 |
+ |
1次或者多次 |
? |
0次或者1次 |
{n} |
恰好n次 |
{n,m} |
从n到m次 |
<!--EndFragment--><!--EndFragment--><!--EndFragment--><!--EndFragment-->
5、“否”符号 “ ^ ”
“ ^ ” 边界匹配器,行的开头。如果用在方括号内,表示不像匹配的字符。
[^X][a-z]
第一个不能为X,后面跟一个a-z任意的一个字符
6、圆括号和空白符号
假设要从格式为“June 26 , 1987”的生日日期中提取出月份部分,用来匹配该日期的表达式可以如下图:
[a-z]+\s+[0-9]{1,2} , \s*[0-9]{4}
如何提取出月份部分?只需要在月份周围加上一个圆括号创建一个组,然后用ORO API 提取出它的值。修改后的正则表达式如下:
([a-z]+)\s+[0-9]{1,2} , \s*[0-9]{4}
7、其他符号
下表是常见正则表示式创建的快捷符合。
符号 |
等价的正则表达式 |
\d |
[0-9] |
\D |
[^0-9] |
\w |
[A-Z0-9] |
\W |
[^A-Z0-9] |
\s |
[\t\n\r\f] |
如下面的例子:
可以将所有出现“[0-9]”的地方我们都可以用“\d”
1、[^abc] 任何字符,除了a、b、c 比如:匹配字符z 为true 。该表达式只能匹配单个字符,对 zz的匹配为false
2、[] 方括号里面的,匹配的是一个字符,
3、[a-d[m-p]]和[a-zA-Z]相似 并集
4、[a-z&&[zhu]] 交集 同时属于a-z和zhu其中的一个字符
[abc] |
a、b、c |
[^abc] |
除a、b、c外的 |
[a-zA-Z] |
a到z,A-Z中的任意一个字符 |
[a-d[m-p]] |
a到d,m到p中的任意一个字符 |
[a-z&&[def]] |
a到z 和def相交的一个字符 |
|
|
|
|
横线 - 表示范围的定义 。0-9 表示范围0到9之间的任何数字
^ 行的开头
$ 行的结尾
用法:1、 ^ 行的开头。如、^A[0-9] --------表示以A开头、后面接一个数字的串
2、 $ 行的结尾,和 ^ 用法相似。 如一个以数字1开头,9结尾的手机号码:^1[0-9]{9}9$
public static boolean test02(){
Pattern p = Pattern.compile("([a-z]+)([0-9]+)");
Matcher m = p.matcher("zhuyingming2009");
//m.find()匹配器与模式进行匹配,匹配成功返回true,否则返回false
if(m.find() == true){
//匹配成功后,可以用匹配器的group()方法获得组里的内容,
/**
* 不带参数的group()是获得整个内容
* 带参数的group(int start) start表示第几个组的内容,
* start为0时 和不带参数的group()获得的内容一样。
* */
String temp = m.group(2);
System.out.println("group ---> " + temp);
}
boolean result = m.matches();
return result;
}
<!--EndFragment-->
分享到:
相关推荐
通过这些基本概念和实例,你应该对Java正则表达式有了初步了解。在实际开发中,结合更多的正则表达式语法和实践,你会发现它的强大和灵活性。不断探索和实践,你将能更熟练地运用Java正则表达式解决各种字符串处理...
在"马士兵JAVA视频教程J2SE专题正则表达式02初步认识Java正则表达式avi.flv"中,可能会进一步讲解: 1. 量词:`+`表示至少一次,`*`表示零次或多次,`?`表示零次或一次,`{n}`表示恰好n次,`{n,}`表示至少n次,`{n,...
2. **初步认识Java正则表达式** - Java中的正则表达式主要通过`java.util.regex`包提供支持。 - `Pattern`类用于编译正则表达式,`Matcher`类则用于执行匹配操作,如`matches()`, `find()`, `replaceAll()`等方法...
### 正则表达式校验身份证号码 #### 知识点概述 身份证号码在中国大陆具有唯一性,用于标识每一个公民的身份。身份证号码分为15位和18位两种格式,其中18位号码是在15位基础上增加了一个4位出生年份以及一位校验码...
这篇文档旨在帮助读者在30分钟内理解和初步掌握正则表达式的基本概念。 1. **什么是正则表达式?** 正则表达式(Regular Expression,简称regex)是一串字符序列,用于定义字符串中的模式。它能够用来检查一个字符...
### 常用正则表达式详解 #### 匹配中文字符 - **正则表达式**: `[\u4e00-\u9fa5]` - **应用场景**: - 文本处理与分析。 - 数据清洗时,用于识别并处理中文文本中的特定字符。 - **特点**: - `\u4e00` 至 `\u9fa5...
本教程旨在帮助你快速理解正则表达式的基本概念和常见用法,让你在30分钟内入门,能够初步应用在实际编程中。 一、正则表达式基础 1. 字符类: - `\d`:匹配任何数字(等同于[0-9])。 - `\D`:匹配任何非数字...
- 当验证用户输入的数据是否符合JSON格式时,正则表达式可以辅助进行初步的合法性检查。 - JSON格式的字符串通常需要转换成对象或数组,正则表达式在此过程中可以帮助识别键和值的边界。 4. **在编程语言中的应用...
- 使用正则表达式可以初步解析SQL的各个组成部分,如识别SELECT关键字、列名、表名和条件表达式。 - 对于更复杂的SQL,如子查询、联接操作,可能需要递归或自定义解析算法。 4. **SqlParser-main**: 压缩包中的...
通过这个30分钟的学习,你应该能够初步掌握正则表达式的基本用法,并开始在实际项目中应用。但请记住,正则表达式的深度和复杂性远不止于此,持续学习和实践是提升技能的关键。阅读"细说正则表达式.doc"将更深入地...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和验证字符串模式。在IT领域,尤其是在数据验证、文本处理和编程中,正则表达式扮演着至关重要的...而正则表达式更适合用于快速的初步筛选或简单的格式检查。
在编程语言如JavaScript、Java和Web开发中,正则表达式扮演着不可或缺的角色。通过学习正则表达式,开发者能够高效地处理复杂的字符串匹配任务。 在30分钟内,你将了解正则表达式的基础概念,包括元字符、字符转义...
正则表达式广泛应用于各种编程语言和工具中,如JavaScript、Python、Java、Perl、SQL等,可用于文本处理、数据清洗、表单验证等多个方面。 #### 六、后续学习资源 - **官方文档**:学习特定编程语言或工具的官方...
总结,正则表达式在网页资源提取方面是一个有用的工具,特别是在快速提取初步信息时。然而,为了更精确和全面地处理网页内容,应当结合其他技术,如HTML解析库和网络爬虫框架。在实践中,应根据具体需求灵活选择合适...
此外,熟悉一种或多种编程语言的基础知识,如JavaScript、Python、Java等,将有助于理解和应用正则表达式。 #### 三、匹配单个字符 正则表达式中最基本的元素就是匹配单个字符,这包括大小写字母、数字和其他符号...
大多数现代编程语言如Python、Java、JavaScript等都支持正则表达式,并提供了相应的API进行匹配、替换和分割操作。 通过30分钟的快速入门,你应该对正则表达式有了初步的认识。继续深入学习,你会发现它在文本处理...