Java SE之正则表达式一:概述
正则表达式
概念
定义:符合一定规则的表达式
作用:用于专门操作字符串
特点:用于一些特定的符号表示代码的操作,这样就简化了长篇的程序代码
好处:可以简化对字符串的复杂操作
弊端:符号定义越多,正则越长,阅读性越差
关键类
- String
- Pattern:正则类对象
- Matcher:通过解释Pattern对character sequence执行匹配操作的引擎类。(匹配器)
具体操作功能
匹配:返回是否与规则匹配的布尔值
1 String:
boolean string.matches(String regex)
2 Pattern + Matcher:
Pattern pattern.compile(String regex)
Matcher pattern.matcher(String regex)
boolean matcher.matches()
3 Pattern
boolean b = Pattern.matches(String regex, String string)
切割:返回符合规则以外的字符串
1 String:String[] split(String regex)
2 String:String[] split(String regex, int limit)
> 为了让规则的结果被重用,可以让规则封装成一个组,用()完成。组的出现都有编号:
从1开始想要使用已有的组可以通过格式:\ + 组序号
Eg:以叠词作为分隔符号,切隔字符串:(.)\1+
Eg: (X(Y(Z)))(M)
组号:1 2 3 4
替换:返回被规则替换的字符串
1 String:String replaceAll(String regex, String replacement):regex-\n
2 String:String replaceFirst(String regex, String replacement):replacement-$n
3 Pattern + Matcher:
Pattern pattern.compile(String regex)
Matcher pattern.matcher(String regex)
-------------------------------------
String matcher.quoteReplacement(String s)
String matcher.replaceAll(String replacement)
String replaceFirst(String replacement)
获取:将字符串中的规则的子串取出
将正则表达式封装成对象;让正则表达式和要操作的字符串相关联;关联后,获取正则匹配引擎;通过引擎对符合规则的子串进行操作,如:取出
1 //step1:将规则封装成对象
Pattern pattern = Pattern.compile(regex);
//step2:让正则对象和要提取的字符串相关联,获取匹配(器)引擎对象
Matcher matcher = pattern.matcher(string);
while(matcher.find()) {//不断地利用正则引擎查找符合正则表达式的对象,找到:true;没有找到:false
System.out.println("start:" + matcher.start() + " word:" + matcher.group() + " end:" + matcher.end());//返回当前查找到的一个子串,并返回其单词的开始start()与结束区间end()
}
参考文献
[黑马程序员_毕向东_Java基础视频教程第25天](http://www.huahuionline.com/MainCtrl?page=ShowLessonDetailPage&lesson_id=56c1838945ceb61ab5246f3d&cNo=1)
Java SE之正则表达式一:概述的更多相关文章
- 译:Java 中的正则表达式性能概述
原文链接:https://www.baeldung.com/java-regex-performance 作者: baeldung 译者:Darren Luo 1. 概述 在本快速教程中,我们将展示模 ...
- Java SE之正则表达式四:获取
/** * * @author Zen Johnny * @date 2018年4月29日 下午4:51:08 * */ package demo.regex; import java.util.re ...
- Java SE之正则表达式二:匹配
package demo.regex; import java.util.regex.Pattern; /* 正则表达式:匹配 */ public class RegexMatchesDemo { / ...
- Java SE之正则表达式六:匹配规则
注释: 1.[]表示的字符集,不表示包含 ()表捕获和成组 Eg: 只能是QQ邮箱/GMail邮箱/Outlook邮箱/163邮箱之一 (qq|gmail|163){1}\.com 与 [(qq)|( ...
- Java SE之正则表达式五:切割
/** * * @author Zen Johnny * @date 2018年4月29日 下午3:53:55 * */ package demo.regex; /* 正则表达式:切割 */ publ ...
- Java SE之正则表达式Demo
@Test public void regex() {//匹配教务系统课程 // String content = "公共机座 (1-10)".replaceAll(" ...
- java SE基础(Collection接口概述)
Collection接口相关集成关系例如以下图 1. 关于可迭代接口(Iterable) 可迭代接口仅包括一个方法,返回一个在一组T类型元素上进行迭代的迭代器: public ...
- Java SE之正则表达式三:替换
/** * * @author Zen Johnny * @date 2018年4月29日 下午4:31:07 * */ package demo.regex; public class RegexR ...
- Java SE 6 新特性: 对脚本语言的支持
2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Musta ...
随机推荐
- 使用Spring Cloud连接不同服务
http://www.infoq.com/cn/articles/spring-cloud-service-wiring 主要结论 Spring Cloud为微服务系统中相互依赖的服务提供了丰富的连接 ...
- java 遍历方法 及 数组,ArrayList,HashMap,HashSet的遍历
一,遍历方法的实现原理 1.传统的for循环遍历,基于计数器的: 遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到最后一个元素后,停止.主要就是需要按元素的位置来读取元素. ...
- 组件之间的数据传递--Vuex
安装Vuex: npm install Vuex -S 在main.js中引入 import Vue from 'vue' import App from './App' import Vuex fr ...
- Django session相关操作
Django session 是存储在数据库中的所以要先跟数据库建立连接 本连接有Django跟数据库建立连接的操作:https://www.cnblogs.com/Niuxingyu/p/10296 ...
- SetCapture() & ReleaseCapture() 捕获窗口外的【松开左键事件】: WM_LBUTTONUP
今天在窗口上绘图的时候,遇到一个问题:在特殊情况下,当用户在窗口中按下鼠标左键,然后移动到窗口外松开鼠标左键,这时程序中只能捕获到 WM_LBUTTONDOWN(按下) 和 WM_MOUSEMOVE( ...
- 为Druid监控配置访问权限(配置访问监控信息的用户与密码)
转: l 为Druid监控配置访问权限(配置访问监控信息的用户与密码) 2014-09-26 09:21:48 来源:renfufei的专栏 收藏 我要投稿 Druid是一 ...
- 牛客网 2018年东北农业大学春季校赛 L题 wyh的天鹅
链接:https://www.nowcoder.com/acm/contest/93/L来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 262144K,其他语言524288 ...
- tar压缩解压文件
查看visualization1.5.tar.gz 压缩包里面的内容: $ tar -tf visualization1.5.tar.gz 解压指定文件JavascriptVisualRelease/ ...
- bzoj2819 DFS序 + LCA + 线段树
https://www.lydsy.com/JudgeOnline/problem.php?id=2819 题意:树上单点修改及区间异或和查询. 思维难度不高,但是题比较硬核. 整体思路是维护每一个结 ...
- flask session
flask session工作机制: 把敏感数据经过加密后放入到‘session’中,然后在把'session'存放到cookie中,下次请求的时候,再从浏览器发送过来的cookie中读取sessio ...