黑马程序员-->Java基础-->正则表达式

来源:互联网 发布:手机吉他软件 编辑:程序博客网 时间:2024/06/10 15:31

-------android培训java培训、期待与您交流! ----------

一、概述

正则表达式::用于专门操作字符串,符合一定规则的表达式。
特点:用于一些特定的符号来表示一些代码操作,只要使用了指定符号,就可以调用底层的代码对字符串进行操作。符号的出现,简化了代码的书写。
好处:可以简化对字符串的复杂操作
弊端:符号的出现虽然简化了书写,但是却降低了阅读性。
意义:学习正则表达式,就是在学习一些特殊符号的使用,更多是用正则解决字符串操作的问题。

 

二、常用符号用法

1、字符
x 字符 x
\\ 反斜线字符
\0n 带有八进制值 0 的字符 n (0 <= n <= 7)
\0nn 带有八进制值 0 的字符 nn (0 <= n <= 7)
\0mnn 带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
\xhh 带有十六进制值 0x 的字符 hh
\uhhhh 带有十六进制值 0x 的字符 hhhh
\t 制表符 ('\u0009')
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
\f 换页符 ('\u000C')
\a 报警 (bell) 符 ('\u0007')
\e 转义符 ('\u001B')
\cx 对应于 x 的控制符

 

2、字符类
[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](减去)

 

3、预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

 

4、Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

 

5、边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾

 

三、具体操作功能:

1、匹配:String matches()方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false

代码示例:

 

2、切割 :String[] split()
当你想对某个元素进行重用的时候,可以把它封装成组。
组:用小括号标示,每定义一个小括号,就是一个组,而且有自动编号,从1开始。只要使用组,对应的数字就是使用该组的内容。java中表现形式:(.)\1
(aaa(wwww(ccc))(eee))技巧,从左括号开始数即可。有几个左括号就是几组。
代码示例:

 

3、替换:String replaceAll(String regex, String replacement)
使用给定的字符串替换原字符串所有匹配给定的正则表达式的子字符串。
代码示例:

 

4、获取:
将字符串中的符合规则的子串取出。
操作步骤:
a.通过compile方法将正则表达式封装成对象,返回Pattern对象
b.通过matcher方法让正则对象和要操作的字符串相关联,返回Matcher对象
c.关联后,获取正则匹配引擎
d.通过引擎对符合规则的子串进行操作,比如取出

代码演示:

 

-------android培训java培训、期待与您交流! ---------- 

0 0
原创粉丝点击