黑马程序员--java笔记14--正则表达式

时间:2021-12-07 12:01:58
------- android培训java培训、期待与您交流! ----------

正则表达式

用于操作字符串数据,通过特定的符号来体现,但是阅读性较差

四种功能str.方法(reg;

1.匹配 matches 只想知道该字符是对是错

2.切割 split 按照自定的方式将字符串变成多个,获取规则以外的子串

3.替换 replaceAll 将已有字符串变成另外一个

4.获取  拿到符合需求规则的子串

操作步骤

1.将正则表达式封装成对象

2.让正则对象和要操作的字符串相关联

3.关联后获取正则匹配引擎

4.通过引擎对符合规则的子串进行操作

String s=”kjkwefjiew212jfewi5445ofjwoeif”;

String reg=”[a-z]”;

Pattern p=Pattern.compile(reg);

Matcher m=p.matcher(s);

\\m.find();m.group();方法与迭代器类似

java.util.regex -->类 Pattern/Matcher

P.S.:

单斜杠在正则表达式中是:\\\

双斜杠:\\\\

通配符.:\\.

将字符串中叠词换成单个:str=str.replaceAll(“(.)\\1+”,”$1”);

 

字符

x

字符 x

\\

反斜线字符

\t

制表符 ('\u0009')

\n

新行(换行)符 ('\u000A')

\r

回车符 ('\u000D')

\f

换页符 ('\u000C')

字符类

[abc]

a、b 或 c(简单类)

[^abc]

任何字符,除了 a、b 或 c(否定)

[a-zA-Z]

a 到 z 或 A 到 Z,两头的字母包括在内(范围)

[a-d[m-p]]

a 到 d 或 m 到 p:[a-dm-p](并集)

[a-z&&[def]]

d、e 或 f(交集)

[a-z&&[^bc]]

a 到 z,除了 b 和 c:[ad-z](减去)

[a-z&&[^m-p]]

a 到 z,而非 m 到 p:[a-lq-z](减去)

预定义字符类

.

任何字符(与行结束符可能匹配也可能不匹配)

\d

数字:[0-9]

\D

非数字: [^0-9]

\s

空白字符:[ \t\n\x0B\f\r]

\S

非空白字符:[^\s]

\w

单词字符:[a-zA-Z_0-9]

\W

非单词字符:[^\w]

边界匹配器

^

行的开头

$

行的结尾

\b

单词边界

\B

非单词边界

\A

输入的开头

\G

上一个匹配的结尾

\Z

输入的结尾,仅用于最后的结束符(如果有的话)

\z

输入的结尾

Greedy 数量词

X?

X,一次或一次也没有

X*

X,零次或多次

X+

X,一次或多次

X{n}

X,恰好 n 次

X{n,}

X,至少 n 次

X{n,m}

X,至少 n 次,但是不超过 m 次

 

 

() 组对象

组对象行号