正则表达式
发布时间:2020-12-13 22:30:46 所属栏目:百科 来源:网络整理
导读:regex正则表达式: 专门用于操作字符串的,作用于字符串的一个正确的规则的表达式。 好处:用了一些符号代表代码,书写起来比较简单。 弊端:因为都是一些符号组成的表达式,所以可读性不高,而且先要把符号学完才行,才能看得懂。 正则对字符串的常见功能操
regex正则表达式:
专门用于操作字符串的,作用于字符串的一个正确的规则的表达式。
好处:用了一些符号代表代码,书写起来比较简单。
弊端:因为都是一些符号组成的表达式,所以可读性不高,而且先要把符号学完才行,才能看得懂。
正则对字符串的常见功能操作:
1,匹配
其使用的就是String类中的matchs方法,返回结果是boolean
2,切割
其使用的就是String类中的split方法,返回结果是String[]数字
使用叠词作为分隔符:
正则规则的复用..想复用,先封装,正则封装用小括号完成
//封装完以后有编号,从1开始,规则中被小括号封装的称之为组,直接通过编号调用对应的组
//调用方式直接写已有的组的编号前面加上
// "(.)1+":使用已有的第一组内容。原则:先有组,才可以使用对应的编号调用。
3,替换
使用的就是replaceAll方法,结果是一个新的字符串。
4,获取
获取其他三个功能内部最终使用的都是Pattern正则表达式对象。
现在需要其他功能时,字符串String类中没有对应的方法,只能找Pattern对象。
pattern对象使用的原理:
1,使用正则表达式字符串编译成正则对象pattern。
2,通过pattern对象获取Matcher对象(匹配器对象)。
3,通过匹配器对象对字符串进行规则的匹配,结果都在匹配器中。
4,通过匹配器对象的功能获取结果。
pattern:
//去除由三个字母组成的单词:
String str = "da jia zhu yi la,ming tian fang jia";
String regex="b[a-zA-Z]{3}b";
//1,将正则表达式的字符串格式先通过pattern中的compail方法编译成pattern正则表达式对象,将正则字符串表达式封装成封装成对象。
Pattern p = Pattern。compile(regex);
//2,想要使用这个规则进行操作,还需要通过Matcher方法和指定的字符串关联,并获取匹配器对象Matcher。真正将规则作用到字符串的对象上的是匹配器Matcher.
Matcher m = p.matcher(str);
//3,用匹配器对象Matcher的功能(方法)对字符串进行操作:
通过find查找并通过group方法打印。
while(s.find()){//查找 每查找一次 输出一次
System.out.println(s.group());
}
类 Pattern:
字符
x 字符 x
反斜线字符
n 带有八进制值 0 的字符 n (0 <= n <= 7)
nn 带有八进制值 0 的字符 nn (0 <= n <= 7)
mnn 带有八进制值 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 的控制符
字符类
[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 空白字符:[ tnx0Bfr]
S 非空白字符:[^s]
w 单词字符:[a-zA-Z_0-9]
W 非单词字符:[^w]
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
Matcher方法:
compile(String regex)将给定的正则表达式编译到模式中。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |