Java正则表达式初探(一)
好多同学们总是听别人说起正则表达式这个东西,也有很多用接触到实际使用过。但是相信有很大一部分人是在用的时候采取网站上搜索,拿一个一知半解的别人写的例子过来,简单测试下功能可用,就OK了。正则表达式那晦涩难懂的语法让很多人望而却步。但是读了本文,我相信很多人对于正则表达式就算是基本入门了。最快捷的精通的办法,还是多练多写。
一、什么是正则表达式?
正则表达式,又称正则表达式、正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
二、java中正则表达式的实现
java中正则表达式相关的类都在java.util.regex包下面,我们先来看看都有哪些吧。

主要就是两个类,java的正则表达式相关的功能都已经在这两个类里面实现了。下面简单介绍下正在表达式中的语法吧。
1.字符
字符在正则表达式中,代表的就是一个字符本身。
Pattern p = Pattern.compile("abc");
上面这个正则表达式,代表就是匹配“abc”这个字符串,字符是正在表达式中对基本的元素,也非常好理解。
2.字符类
字符类在正则表达式中,代表的是一类字符。使用半角中括号代表字符类。中括号中可以出现一些带有含义的特殊字符。简单具体如下:

3.预定义字符类
正在表达式中,将人们最常用的字符类已经提前定义好,并且使用一个特殊的表达形式代替,让人们使用起来更加方便快捷。

4.边界匹配
边界匹配符,用于定义正则表达式匹配的边界约束。

5.量词
量词用于定义正则表达式中,字符出现的次数。量词的匹配模式分为三种:贪婪、勉强、独占

6.捕获组和非捕获组
捕获组的定义目的是为了将匹配到的内容当中定义几个部分,人们能够分别获取每一个部分的内容。捕获组的定义,与匹配无关,对于匹配结果也没有影响只是为了单纯的进行文本分组的。
非捕获组和捕获组恰恰相反,他是为了影响是否匹配,但是在匹配结果中又不出现的一种分组形式。

三、写在最后
在学习一个晦涩难度的技术的时候,最重要得还是要能够静的下心来,以及掌握一个正确的学习方法吧。
上面的内容在Java API中Pattern这个类的说明中有详细的解释。
没记住的同学,随时可以使用API查询。第二讲中将针对上述的概念,以具体的例子来说明用法。
作者:yescoolfan
出处:http://www.cnblogs.com/yescoolfan
水平有限,欢迎指正,转载时请附上原文链接
Java正则表达式初探(一)的更多相关文章
- java正则表达式
java正则表达式 1.Java正则表达式的语法与示例: http://baike.xsoftlab.net/view/207.html 2.Java 正则表达式: http://www.runo ...
- Java正则表达式入门——转自RUNOOB.COM
Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...
- Java 正则表达式详解
Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达式API. 正则表达式 一个正则表达式是一个用于文本搜索的文本模式.换句话说,在文本中搜索 ...
- 【转】详解Java正则表达式语法
(转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...
- java正则表达式【大全】
[正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$& ...
- JAVA正则表达式:Pattern类与Matcher类详解(转)
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- JAVA正则表达式:Pattern类与Matcher类详解
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...
- Java 正则表达式[转载]
PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...
- Java正则表达式的应用
在很多种情况下,我们都必须对字符串进行匹配,以便判断字符串的格式是否符合要求,对字符串中的内容进行提取.比如,我要从一段话aabdfe中,判断这段话是否有包含ab这个词,那么如果用if-else来判断 ...
随机推荐
- Kotlin入门(27)文件读写操作
Java的文件处理用到了io库java.io,该库虽然功能强大,但是与文件内容的交互还得通过输入输出流中转,致使文件读写操作颇为繁琐.因此,开发者通常得自己重新封装一个文件存取的工具类,以便在日常开发 ...
- 微软语音引擎 TTS 最基本使用
TTS(TextToSpeak) 需求:需要借助程序实现 文字合成语音/语音识别. TTS 介绍就不说了,这里介绍非常详细 >>> TTS详细介绍 + SAPI(微软的TTS语音 ...
- (后端)mybatis中使用Java8的日期LocalDate、LocalDateTime
原文地址:https://blog.csdn.net/weixin_38553453/article/details/75050632 MyBatis的型处理器是属性“createdtime参数映射为 ...
- codeforces 2A Winner (好好学习英语)
Winner 题目链接:http://codeforces.com/contest/2/problem/A ——每天在线,欢迎留言谈论. 题目大意: 最后结果的最高分 maxscore.在最后分数都为 ...
- php post接口,登录功能
登录功能同注册功能一样,都是使用 post 方法,在执行 sql 语句时,同样要使用 "select * from 表名 where 键名 = 参数" 的查询方式,不同的是: 注册 ...
- 剑指Offer 答题截图
- Jenkins2.32用户和权限管理策略
前言 在使用jenkins的过程中,需要为不同的角色分配相应的权限,如果jenkins的用户数据能和公司现在的帐号系统结合起来那会更好. 关于如何为用户分组,我推荐使用 role based auth ...
- Zookeeper源码编译为Eclipse工程(win7下Ant编译)
前言 ZooKeeper是雅虎的.用Ant进行软件构建. 千里之行,始于足下.想看源码的第一步,是下载源码并导入某个IDE工具. Ant http://ant.apache.org/ Windows: ...
- (转)Spring Boot(九):定时任务
http://www.ityouknow.com/springboot/2016/12/02/spring-boot-scheduler.html 在我们开发项目过程中,经常需要定时任务来帮助我们来做 ...
- Django-rest-framework 接口实现 ModelSerializer 使用
ModelSerializer 使用 不需要单独写字段的 序列化工具类 相当于 ModelForm 写法:以及 注意事项: 继承 serializers.ModelSerializer 在类中填写 c ...