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来判断 ...
随机推荐
- loadrunner 脚本优化-检查点设置
脚本优化-检查点设置 by:授客 QQ:1033553122 VuGen判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的是HTTP状态为200 OK,那么VuGen就认为脚本正确地 ...
- 小米手机Toast显示带应用名称问题解决方法
近期为了适配刘海屏,向公司申购了一步小米8的手机,然后测试人员那边测出来一堆适配的问题,其中有一个每一个Toast会显示app的名称+显示的内容,然后网上查找了一下解决方法记录一下,顺便封装了Toas ...
- 喜闻乐见-Android LaunchMode
launchMode,通俗点说,就是定义了Activity应该如何被launch的.那么这几种模式的区别以及应用场景,会有何不同呢?谷歌是基于什么原因设计这几种模式的呢?这几种模式背后的工作原理是什么 ...
- [转] vi/vim命令模式和编辑模式各种操作
摘要:vi 编辑器是最常用的文档创建和编辑工具,初学者应该学会简单应用vi ,学会在vi 中做简单的修改.删除.插入.搜索及替换作业:如果您是新手,不妨看看本文,或许这篇文档能让您在最短的时间内学会v ...
- Scrapy 解决Scrapy安装时报错"Microsoft Visual C++ 14.0 is required"
问题描述 当前环境win10,python_3.6.1,64位.在windows下,在dos中运行pip install Scrapy报错:error: Microsoft Visual C++ 14 ...
- mssql sqlserver in 关键字在值为null的应用举例
转自:http://www.maomao365.com/?p=6873 摘要: 下文通过案例分析in 关键字在值为null的应用举例, 分析出not in关键字在null值产生的异常信息 如下所示: ...
- 自动化测试基础篇--Selenium元素定位
摘自https://www.cnblogs.com/sanzangTst/p/7457111.html 一.Selenium元素定位的重要性: Web自动化测试的操作:获取UI页面的元素,对元素进行操 ...
- MongoDB Sharding分片配置
Ps:mongod是mongodb实例,mongos被默认为为mongodb sharding的路由实例. 本文使用的mongodb版本为3.2.9,因此参考网址为:https://docs.mong ...
- SqlServer2017下载地址
https://www.microsoft.com/zh-CN/download/details.aspx?id=55994
- NPOI导入导出Excel工具类
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Ref ...