JavaBasic_正则表达式
就是符合一定规则的字符串 规则字符在java.util.regex.Pattern类中
字符转义
\. 匹配.字符
\* 匹配*字符
\\ 匹配\字符
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
字符类
[abc] -- a、b 或 c(简单类) 只匹配其中的单个字符 两个是不匹配的 比如 ab 是不匹配的
[^abc]-- 任何单个字符,除了 a、b 或 c(否定)
[a-zA-Z]-- a到 z 或 A到 Z,两头的字母包括在内(范围)
[0-9]-- 0到9的字符都包括
常用的元字符
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
A) 在正则表达式 单词组成 必须有这些东西组成
B) 在英文字符下, 相当于 [a-zA-Z_0-9]
\s 匹配任意的空白符
\d 匹配数字
\b 单词边界 就是不是单词字符的地方。 就是说不是\w 不是数字, 字母, 连接字符 或者汉字
举例:hello world?haha;xixi
^ 匹配字符串的开始
$ 匹配字符串的结束
^\d{5,12}$ 匹配5-12个连续的数字, 但字符串的长度可以超过12个
\d{5,12} - 匹配5-12个连续的数字,只剩5个连续的数字, 最多12个连续的数字
重复字符
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次 (重复0次 就是前面的字符可以不出现, 一次就是出现一次)
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
常见功能:(分别用的是谁呢?)
A: 判断功能
String类的public boolean matches(String regex)
B: 分割功能
String类的public String[] split(String regex)
C: 替换功能
String类的public String replaceAll(String regex,String replacement)
D: 获取功能 Pattern和Matcher
模式和匹配器的基本使用顺序
// 把正则表达式 编译成模式对象
Pattern p = Pattern.compile("a*b");
// 通过模式对象得到匹配器对象, 这个时候需要传递的是被匹配的字符串
Matcher m = p.matcher("aaaaaab");
// 调用匹配器对象的功能
boolean b = m.matches();
public boolean find() - 查找是否存在符合规则的子序列
public String group(int group) - 返回匹配的子序列, 每次只返回第一次匹配的子序列, 后面以次类推。
IllegalStateException- 如果没有尝试任何匹配,或者以前的匹配操作失败。
IndexOutOfBoundsException- 如果在给定索引的模式中不存在捕获组。
注意: 在使用group之前必须先调用find()方法, 否则抛出 IllegalStateException 异常
// 循环打印出符合规则的子序列
while(m1.find()){
System.out.println(m1.group());
}
(4) 案例
A: 判断电话号码和邮箱
B: 按照不同的规则分割数据
C: 把论坛中的数字替换为 * String regex = "\\d+" or String regex = "\\d";
D: 获取字符串中由3个字符组成的单词 String regex = "\\b\\w{3}\\b";
JavaBasic_正则表达式的更多相关文章
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- Python高手之路【五】python基础之正则表达式
下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...
- C# 正则表达式大全
文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...
- C#基础篇 - 正则表达式入门
1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 【JS基础】正则表达式
正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...
- JavaScript 正则表达式语法
定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...
- [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)
数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...
随机推荐
- Symbol Vs String
最重要区别 1 symbol存入内存后,始终存在,如果不进行垃圾收集,可能导致内存泄漏. String只会存在于某个创建它的作用域内.即有生命周期的. 2.唯一性. \\进入控制台 >" ...
- 项目开发中关于jquery中出现问题小结(textarea,disabled,关键字等)
1.textarea: 使用 定义了一个textarea,在使用jquery的方法获取文本内容的时候总是为空. var content = $(“#content”).val(); 后来测试发现,i ...
- 洛谷P3225 HNOI2012 矿场搭建
题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之 ...
- nisght heap increase
sudo gedit /usr/local/cuda-5.5/libnsight/nsight.ini --launcher.defaultActionopenFile-vm../jre/bin/ja ...
- wishhack 玩法概览
抢流量玩法 超级店长玩法 https://www.wishhack.com/article/50.html https://www.wishhack.com/article/43.html
- 第一份offer
11月6日参加的面试,今天签完三方,回头想想,感慨万千. (很多过程没有详细写,只保留了基本的客观事实,避免自吹嫌疑.....) 6号面试,当时来了能有100-200人,以川大和电子科大研究生为主,主 ...
- 50个常用的Linux命令(三)基础实例
ls ls -als -l == llls -Aldrwxrwxrwx. 2 root root 6 Dec 21 20:38 Videos-rwxrwxrwx 1 root ...
- Android开发 ---ORMLite实现数据的增删改查,单例模式,Dao栈
效果图: 项目目录截图: 1.activity_main.xml 描述: 两行显示8个按钮 <?xml version="1.0" encoding="utf-8& ...
- 关于数据安全RSA,MD5,TOKEN
网络上明文传输时 1.数据可能被窃取:2.数据可能被篡改:3.数据被泄露 如何解决: 1.数据被窃取是由于数据能随意的被拿到,且能够被识别.可以有2个方式解决 a.使数据不能随意被获取: 使用toke ...
- Locust 参数化
概述: 和Loadrunner一样对于多用户并发时,重复登入或者数据的重复使用会造成脚本的失败,那么我们引入Loadrunner的参数化概念,对用户数据进行参数化来使脚本运行成功. 头绪: use ...