正则表达式

匹配:匹配个数要一样字母大小敏感 数字看整体的数值

注意 \\ 在java 中只代表一个 \ 特殊字符需要转义

 

## 正则表达式

### 什么是正则

1. 正则本身是一个字符串

2. 正则用于检索目标字符串中的规则

3. 正则是规定字符规则的字符串。

4. 正则需要解析器执行,Java提供了相关的解析处理API

5. 常见的编程语言大部分支持提供了正则API

 

1.普通字符得匹配

包括字母数字汉字下划线以及没有特殊定义的标点符号 (所有的都要匹配完才结束) /(普通字符)

 

2.简单的转义字符

\r 代表回车 \\t代表 (\ 加t) java中单独写 \ 会报错

\t 代表值表符

\n 换行符

\\代表 \本身

\ 转义字符 (特殊用处得标点符号需要转义) \^ \$ \.

 

3.预定的匹配符号

. 规则:任意一个字符(除换行符外\n \r)

\d : 0-9 任意的数字的任意一个

\D: 非数字 符的任意一个

\w : 任意的数字字母下划线的任意一个

\W : 非任意的 数字字母下划线

\s 包括空格制表符换行符等空白字符的任意一个 单一的空格只能匹配空格 单一的/t 只能单一匹配

\S 除了单个字符外的所有字符

 

4. 自定义的匹配

[abc] 匹配:abc字符之一

[^abc]匹配:除了abc字符之一

[a-z]匹配:a、b、c ... z 字符之一

[a-zA-Z0-9]匹配:a-z , A-Z 和 0-9 字符之一

[a-z&& [^de]] 匹配:a-z 中除去 d e

^ 取非 - 从...到…

 

5.匹配次数的特殊符号(向左看)修饰前面的

{n} n次

{m,n} m 到n 次

{m,} 至少 m 到任意次

? 0 或 1 次

* 0 或多次

+ 1 或多次

 

6 .特殊字符的匹配需要转义

[ ] { } ? * + . \ ( ) | ^ $ 的字符

/来转义写成//

 

7.匹配边界

^ 放在中括号表示取反 外面表示开头

 

8 .关于边界匹配 ^ $

1. 一般情况下对于字符串整体进行检验时候使用 ^ 和 $

-如:检查用户输入的电话号码的整体符合电话号码规则

>matches 本身是包含边界匹配

2. 如果只是匹配字符串中的部分信息,就不要使用 ^ 和 $

- 如:检索目标字符串中的敏感词,并且替换

 

9 .分组()

取反(?:)

将一组序列整体进行处理

案例:

匹配规则: abcabcabcabcabcabc, abc连续出现6次

利用分组: (abc){6}

 

10. | 表示或的意思

通常和()以一起用

object 类根基类

toString() 所有子类应该重写 toString( ),toString()一般返回一些重要的属性 由系统自动调用

matches

简单检查字符串整体是否符合指定的规则, 返回boolean类型的结果,true表示检查成功。

booleanb = 字符串.matches(正则规则);

> 这个方法默认包含重头到尾的边界匹配,所以是否使用边界匹配结果是一样的。

replaceAll

语法:去除一句话的敏感词

字符串.replaceAll(正则, 替换字符串)

text.replaceAll("我[去草]", "**");

 

### Split

数据: ]

str= "1, 范传奇, fancq@tedu.cn, 110"

需求:

将如上数据拆分开:

"1"

"范传奇"

"fancq@tedu.cn"

"110"

String[]ary=str.split(分界位置正则)

 

## Object

1. 如果类没有声明父类型,则其默认继承于Object

2. 如果一个类有父类型,则其父类型或祖先类型一定继承于Object

3. 任何类型一定继承于 Object

4. 继承了Object的全部可继承方法

-toString 等

 

### toString 方法

1. 任何类型的对象都继承了Object方法

2. 默认的返回值类全名@散列值默认的toString返回值,没有业务意义!

3. Java 建议子类重写掉 toString

* 如何重写toString经常返回对象的关键属性

* 信息,根据业务规则选定关键属性,方便软件

* 的调试。println() 会自动调用toString

* 很多Java API 会自动调用toString方法

1. 如果类没有声明父类型,则其默认继承于Object

2. 如果一个类有父类型,则其父类型或祖先类型

一定继承于Object

3. 任何类型一定继承于 Object

4. 继承了Object的全部可继承方法

 

### equals 方法

Object提供了equals方法,用于比较对象是否相等,但其默认的方法不能达到这个目的,Java建议子类重写equals方法解决两个对象比较是否相等的问题。

> 可以利用开发工具提供的 equals 实现功能,快速的实现equals方法