RegEx正则表达式学习笔记
一、实用的例子
public static void main(String[] args) {
// 简单练习
System.out.println("-123".matches("-?\\d+"));
System.out.println("+5678".matches("(-|\\+)?\\d+"));
// QQ号
System.out.println("174678839431".matches("\\d{5,12}"));
// 固定电话号码
System.out.println("010 88886666".matches("\\(?0\\d{2}[) -]?\\d{8}"));
System.out.println("010-88886666".matches("\\(?0\\d{2}[) -]?\\d{8}"));
System.out.println("(010)88886666".matches("\\(?0\\d{2}[) -]?\\d{8}"));
// 数字或字母(长度限制8-12)
System.out.println("zhengbin123".matches("^[a-zA-Z0-9]{8,12}$"));
// 符合规则的IP地址
System.out.println("8.8.8.256".matches("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?).){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)"));
// 只能输入汉字
System.out.println("郑州的文武".matches("^[^\\w^!@#$%^&*(){}\\\\|~`,./';:;‘,。、~·!(【】)《》<>’]{2,4}$"));
}
二、表达式使用规则表
字符
| B | 指定字符B |
| \xhh | 十六进制值为oxhh的字符 |
| \uhhhh | 十六进制表示为oxhhhh的Unicode字符 |
| \t | 制表符Tab |
| \n | 换行符 |
| \r | 回车 |
| \f | 换页 |
| \e | 转义(Escape) |
字符类
| . | 任意字符 |
| [abc] | 包含a、b和c的任何字符(和a|b|c作用相同) |
| [^abc] | 除了a、b和c之外的任何字符(否定) |
| [a-zA-Z] | 从a到z或从A到Z的任何字符(范围) |
| [abc[hij]] | 任意a、b、c、h、i和j字符(与a|b|c|h|i|j作用相同)(合并) |
| [a-z&&[hij]] | 任意h、i或j(交) |
| \s | 空白符(空格、tab、换行、换页和回车) |
| \S | 非空白符([^\s]) |
| \d | 数字[0-9] |
| \D | 非数字[^0-9] |
| \w | 词字符[a-zA-Z0-9] |
| \W | 非词字符[^\w] |
逻辑操作符
| XY | Y跟在X后面 |
| X|Y | X或Y |
| (X) | 捕获组。可以在表达式中用\i引用第i和捕获组 |
边界匹配符
| ^ | 一行的起始 |
| $ | 一行的结束 |
| \b | 词的边界 |
| \B | 非词的边界 |
| \G | 前一个匹配的结束 |
三、注意
Java中插入一个普通的反斜线,应为'\\\\'
以上表格中 '\*' 在Java中均为 '\\*'
RegEx正则表达式学习笔记的更多相关文章
- javascript正则表达式 - 学习笔记
JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...
- 小菜鸡学习---<正则表达式学习笔记2>
正则表达式学习笔记2 一.修饰符 前面我们学习的都是用于匹配的基本的关键的一些表达式符号,现在我们来学习修饰符.修饰符不写在正则表达式里,修饰符位于表达式之外,比如/runoob/g,这个最后的g就是 ...
- JavaScript正则表达式学习笔记(二) - 打怪升级
本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...
- delphi正则表达式学习笔记(三)
Delphi 中经常使用的正则表达式 在 Delphi 中使用正则表达式, 目前 PerlRegEx 应该是首选, 准备彻底而细致地研究它. 官方网站: http://www.regular-e x ...
- 正则表达式学习笔记(附:Java版示例代码)
具体学习推荐:正则表达式30分钟入门教程 . 除换行符以外的任意字符\w word,正常字符,可以当做变量名的,字母.数字.下划线.汉字\s space,空白符 ...
- Python 正则表达式学习笔记
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
- python re库的正则表达式学习笔记
1. 安装 默认已经安装好了python环境了 re库是python3的核心库,不需要pip install,直接import就行 2. 最简单的模式 字符本身就是最简单的模式 比如:'A', 'I ...
- java正则表达式学习笔记
Java 正则表达式语法 为了更有效的使用正则表达式,需要了解正则表达式语法.正则表达式语法很复杂,可以写出非常高级的表达式.只有通过大量的练习才能掌握这些语法规则. 本篇文字,我们将通过例子了解正则 ...
- 7.Python 正则表达式学习笔记
本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例.本文的内容不包括如何编写高效的正则表达式.如何优化正则表达式,这些主题请查看其他教程 ...
随机推荐
- poj 1733(带权并查集+离散化)
题目链接:http://poj.org/problem?id=1733 思路:这题一看就想到要用并查集做了,不过一看数据这么大,感觉有点棘手,其实,我们仔细一想可以发现,我们需要记录的是出现过的节点到 ...
- 用eclipse创建maven项目
Maven是基于项目对象模型(POM),也可以进行模块化开发.并且是个强大的管理工具.本经验用eclipse来创建maven项目 步骤: 1.下载并正确安装eclipse 2.在eclipse上成功安 ...
- Linux 与 CONE NAT 和 Symmetric NAT
http://alexanderlaw.blog.hexun.com/31883661_d.html 1. NAT 的划分 RFC3489 中将 NAT 的实现分为四大类: 1. Full Cone ...
- 迷时师度,悟了自度(时间的边际效应),附VC参考书
12年前看过这篇文章,今天又看到了,还是有些感慨的.上课的时间虽然已经永远远去,用整块的时间去学习已经不可能,但道理还是要记着的,没准依然有用,自勉.------------------------- ...
- MyBatis笔记——初次环境配置
简单介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBati ...
- 关于html5与jsp页面同样的html代码展示的页面效果不一样的问题
原文:关于html5与jsp页面同样的html代码展示的页面效果不一样的问题 html5默认的声明为 <!DOCTYPE html> jsp默认的声明头部为 <%@ page con ...
- dojo 资源库
文档 :http://wenku.baidu.com/link?url=Nnek_tAjIC-Q3t3e9zHQmsh4LhU3f0ncC1QH8WD_U9-I8-fJ7mMisscFpgfuS8nU ...
- Asp.net Json 解析 与 直接用ip访问返回josn
数据分析 目前手头上需要制作一个天气预报功能,现成的接口已经有了.我随便输入一个城市,然后出现了如下的信息: {"wdata":{"cityName":&quo ...
- aopalliance.jar —— 下载地址
下载地址:http://sourceforge.net/projects/aopalliance/files/aopalliance/1.0/aopalliance.zip/download TIPS ...
- Eclipse插件安装与使用 —— Properties Editor
一.下载 首先当然是下载插件啦! 下载地址:http://sourceforge.jp/projects/propedit/downloads/40156/jp.gr.java_conf.us ...