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 ...
随机推荐
- three.js 第二篇:场景 相机 渲染器 物体之间的关系
w我用画画来形容他们之间的关系 场景就是纸张 相机就是我们的眼睛 物体就是在我们脑海中构思的那个画面 渲染器就是绘画这个动作 场景(Scene): 初始化:var scene = new THREE. ...
- 『流畅的Python』第1~4章笔记_数据结构、编码
由于1~4章内容零散且基础,所以统计一下涉及到的内容,记录一下,方便查阅(第一张图右键新页面打开即可看到清晰大图)
- PHP文件PHP代码及运行(适合PHP初学者)
本文转自:https://blog.csdn.net/cnds123/article/details/80700444 如果在warmpserver上运行php只显示源代码,可能是在用记事本保存后缀为 ...
- Git:一个简单示例
初始状态:两个分支master/dev都只有一个文件readme.txt 待解决问题:在master分支新增文件,并且修改readme.txt文件,将上述操作同步至远程master分支,最后同步到de ...
- less的学习(@变量名)
引自:https://www.cnblogs.com/starof/p/5226739.html Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数 ...
- ActiveMQ使用介绍及实例
上一篇讲了rabbitmq的使用以及demo,activemq的思路也与之有相似的地方. activemq是基于Java实现的.activemq没有rabbitmq那么多的路由规则,其通信方式只有两种 ...
- 18-09-20 关于Xlrd和Xlwt的初步学习
#一关于利用xlrd 打开Excel 读取数据的简单介绍import xlrd """ #1 xlrd 基础的用法:读取,获取sheet,获取内容,行数,列数def re ...
- nodejs -- 主模块 ,初始化.
一:知识点: 1-1: 模块初始化: 1-2 主模块: 二: 测试 2-1: 代码: 1) 主模块 1: main.js var counter1 = require("./counte ...
- Java通过URL 从web服务端获取数据
1.Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据 package Demo.Test; import java.io.ByteArrayOut ...
- mod_conference ESL控制二(事件)
根据上篇所述功能需求,esl需要处理以下几类事件: ESL_EVENT_CHANNEL_* #channel相关事件,用户判断参会者是否应答.计费 DTMF事件 #识别参会者按键,根据按键进行操作( ...