学习记录-JAVA正则表达式

正则表达式

java匹配方法

s.matches("JAVA");

s.equals("JAVA");

来询问该字符串是否匹配表达式

正则表达式语法

整行字符加上/ 表示为正则表达式

/123/

以下所有均省略//

字符集


. 某一个字符 可以用J..A匹配JAVA

(va||av) 或 可以用JA(VA|AV)

[abc] 单个字母或 可以用JAV[ABC]

[^abc] 单个字母非 不可以用JAV[Missing superscript or subscript argumentABC]

[a-e] 一串字母 可以用JAV[A-E]

[a-e[A-E]] 多条件 可以用JAV[A-E[H-X]]

&& 或 可以用JAV[A-E&&[A-C]]


转义字符


\d 一位数字

\D 非

\w 一个单字(键盘输入)

\W 非

\s 空

\S 非空


量词


a* 出现0或任意次a(贪婪)

a+ 出现1或多次a

a? 0或者1次

a{n} 刚好出现n次

a{n,} 出现n次及以上

a{n,m} 出现n-m次(不含m)

\p{P} 表示一个标志符号(键盘符号)


字符边界


^s 以s为开头

s$ 以s为结尾

\b 表示单词以此结束或以此开始

\B 非边界

(a|b)? = (a|b){0,1}

 


特殊


捕获与非捕获?

预搜索

起定位作用

(?=1)2 表示查找2前面的1

(?!1)2 表示查找后面不是2的1

(?<=2)1 查找2后面的1

(?<2)1 查找不在2后面的1

修饰符

/s/g 查找全局的

/s/i 不区分大小写

/s/s 让.能匹配\n了

/s/m 多行匹配

回溯

(abc) 表示一个捕获 abc

\1表示匹配第一组

\2表示第二组...

\1表示选择捕获的第一组 再进行后续匹配

应用场合

输入验证

查找替换

高级字符串操作

文件搜索和重命名

黑名单和白名单

查找

\b(\w+) (\w+)\b 表示查找 xx xx的姓名

并且捕获\1\2 再可以进行替换操作

回溯和复数

\bword(s?)\b 查找word/words

替换 phrase$1 表示替换word

 
posted @ 2023-03-23 18:57  xishuiw  阅读(51)  评论(0)    收藏  举报