正则表达式学习笔记(附:Java版示例代码)
具体学习推荐:正则表达式30分钟入门教程
. 除换行符以外的任意字符
\w word,正常字符,可以当做变量名的,字母、数字、下划线、汉字
\s space,空白符
\d digital,数字
\b begin,单词的开始和结束
^ 匹配字符串的开始(整个字符串)
$ 匹配字符串的结束(整个字符串)
? 重复0次或1次
* 重复任意次
+ 重复至少一次
{x} 重复x次
{x,} 重复至少x次
{x,y} 重复x到y次
\ 转义
[xyz] 匹配x或y或z中的一个字符
[A-D1-3] 匹配ABCD123中的一个字符
匹配1|匹配2 分支条件,或,注意:和编程一样,从左到右,一旦匹配1满足,停止匹配
() 分组,把括号里面的东西当做一个整体
\W \S \D \B 和对应的小写\w \s \d \b含义相反
[^abc] 匹配除abc以外的字符
\1 后向引用,重复搜索前面第1个分组匹配的文本。\b(\w+)\b\s+\1\b,匹配类似go go。
(?=exp) 零宽断言:断言自身出现的位置的后面能匹配表达式exp
(?<=exp) 零宽断言:断言自身出现的位置的前面能匹配表达式exp
(?!exp) 负向零宽断言:断言此位置的后面不能匹配表达式exp
(?<!exp) 零宽度负回顾后发断言来断言此位置的前面不能匹配表达式exp
*? 重复任意次,但尽可能少重复 ,即让字符数越少越好
+? 重复1次或更多次,但尽可能少重复,即让字符数越少越好
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
Java正则表达式示例代码:
RegEx.java
/*
* /*
* RegEx
* @author ChenMing
* @version 2016-7-15
*/
import java.util.regex.Matcher;
import java.util.regex.Pattern; public class RegEx {
public static void main(String[] args) {
/*//查找匹配 字符 Java里面\要用\\
Pattern pattern = Pattern.compile("\\w+") ;
Matcher matcher = pattern.matcher("xx") ;
boolean b = matcher.matches() ;
System.out.println(b);*/ /*//分割 按照空格和,分割
Pattern pattern = Pattern.compile(" ,");
String[] strs = pattern.split("Java Hello World Java,Hello,,World|Sun");
for (int i=0;i<strs.length;i++) {
System.out.println(strs[i]);
} */ /*//文字替换
Pattern pattern = Pattern.compile("替换文本");
Matcher matcher = pattern.matcher("被替换文本 adad asdad ad 被替换文本da 被替换文本sd");
System.out.println(matcher.replaceFirst("被替换文本 "));
System.out.println(matcher.replaceAll("被替换文本 "));*/ /*//去除html标记
//Pattern.DOTALL 在这种模式下,表达式'.'可以匹配任意字符,包括表示一行的结束符。默认情况下,表达式'.'不匹配行的结束符。
Pattern pattern = Pattern.compile("<.+?>", Pattern.DOTALL);
Matcher matcher = pattern.matcher("<a href=\"index.html\">主页</a>");
String string = matcher.replaceAll("");
System.out.println(string);*/
}
}
正则表达式学习笔记(附:Java版示例代码)的更多相关文章
- redis 学习笔记(2)-client端示例代码
redis提供了几乎所有主流语言的client,java中主要使用二种:Jedis与Redisson 一.Jedis的使用 <dependency> <groupId>redi ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- python实现文章或博客的自动摘要(附java版开源项目)
python实现文章或博客的自动摘要(附java版开源项目) 写博客的时候,都习惯给文章加入一个简介.现在可以自动完成了!TF-IDF与余弦相似性的应用(三):自动摘要 - 阮一峰的网络日志http: ...
- 学习笔记之Java程序设计实用教程
Java程序设计实用教程 by 朱战立 & 沈伟 学习笔记之JAVA多线程(http://www.cnblogs.com/pegasus923/p/3995855.html) 国庆休假前学习了 ...
- javascript正则表达式 - 学习笔记
JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...
- openstack学习笔记一 虚拟机启动过程代码跟踪
openstack学习笔记一 虚拟机启动过程代码跟踪 本文主要通过对虚拟机创建过程的代码跟踪.观察虚拟机启动任务状态的变化,来透彻理解openstack各组件之间的作用过程. 当从horizon界面发 ...
- JavaScript正则表达式学习笔记(二) - 打怪升级
本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...
- 【学习笔记】OI玄学道—代码坑点
[学习笔记]\(OI\) 玄学道-代码坑点 [目录] [逻辑运算符的短路运算] [\(cmath\)里的贝塞尔函数] 一:[逻辑运算符的短路运算] [运算规则] && 和 || 属于逻 ...
随机推荐
- vs 2012 + OPenCV 2.4.8 配置
一:安装Opencv 下载opencv-2.4.8.exe,然后安装在目录D:\opencv-2.4.8. 二:配置vs 2012 1.打开vs创建项目 2.下一步,选择dll ,空项目,然后完成.后 ...
- 关于win7上内存占用较大的说明
1 Win7系统较XP系统内存占用高: 由于xp系统属于轻量化的系统,而win7系统是一个重量型的系统,在两者的内存管理机制上有很大的区别,根据业界和微软对外的发布公告中可以看到,win7系 ...
- Linux/UNIX 定时任务 cron 详解
定时任务( job)被用于安排那些需要被周期性执行的命令.利用它,你可以配置某些命令或者脚本,让它们在某个设定的时间内周期性地运行.cron 是 Linux 或者类 Unix 系统中最为实用的工具之一 ...
- POJ 1330 Nearest Common Ancestors (最近公共祖先LCA + 详解博客)
LCA问题的tarjan解法模板 LCA问题 详细 1.二叉搜索树上找两个节点LCA public int query(Node t, Node u, Node v) { int left = u.v ...
- Linux环境下发布项目(Tomcat重新启动)
在Linux系统下,重启Tomcat 首先,进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 使用Tomcat关闭命令 ./shutdown.sh 查看Tomcat是否 ...
- Java 性能优化技巧集锦
摘要: =================================== 可供程序利用的资源(内存.CPU时间.网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务.优化通常 ...
- Windows7-32bit系统安装MySQL-5.5.39-win32.msi服务图解
下载mysql-5.5.39-win32.msi安装文件,双击运行,出现如下界面. mysql安装向导启动,按“Next”继续 在 I accept the terms in the License ...
- Jquery学习之基础篇二
1.Jquery添加元素的方法 append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() - 在被 ...
- Spring事务传播简介
一.事务传播属性(propagation) 1.REQUIRED,默认属性 此级别下,会为每一个调用的方法创建一个逻辑事务域,如果前面的方法已经创建了事务,那么后面的方法支持当前事务,如果当前没有事务 ...
- Android学习笔记——ProgressBarHandler
该工程的功能是实现点击按钮进度条按10%递增,使用的方式是Handler 以下的代码是MainActivity.java中的代码 package com.example.progressbarhand ...