正则表达式提供一种完全通用的方式,能够解决各种字符串处理相关的问题:匹配,选择,编辑,验证。
\d表示一位数字。
普通的反斜线:\\
换行和制表符:单反斜线\n\t
表示一个或多个之前的表达式:+
可能有一个负号:后面跟着一位或多位数字:-?\d+
System.out.pritln("-1234".matches("-?\\d+"));
括号有着表达式分组的效果,而竖直线|则表示或操作。
(-|\+)?
因为字符+在正则表达式中有特殊的意义,所以必须使用\将其转义。使之成为表达式中的一个普通字符。
String类型还自带了一个非常有用过得正则表达式工具—split()方法,其功能是“将字符串从正则表达式匹配的地方切开”。
String s="i love China";
s.split(" ");
\W非单词字符
\w一个单词字符
String还自带的一个正则表达式工具是“替换”,你可以只替换正则表达式第一个匹配的子串,或是替换所有匹配的地方。
String s="you can make much money";
s.replaceFirst("c\\w+","must");
s.replaceAll("you|I","everyone")
以大写字母开头,以句号结尾:^[A-Z]\?
用下划线替换元音字母
s.replaceAll(“a|e|i|o|u”,”_”);
可参考JDK文档中java.util.regex包中的Pattern类。
字符
B 指定字符B
\xhh 十六进制值为oxhh的字符
\uhhhh 十六进制表示为oxhhhh的Unicode字符
\t 制表符Tab
\n 换行符
\r 回车
\f 换页
\e 转义(Escape)
字符类
. 任意字符
[abc] 包含a、b和c的任何字符(和a|b|c作用相同)
[^abc] 除了a、b和c之外的任何字符(否定)
[a-zA-Z] 从a到z或从A到Z的任何字符(范围)
[abc[hij]] 包含a、b、c、h、i和j的任何字符(和a|b|c|h|i|j作用相同)(合并)
[a-z&&[hij]] 任意h、i或j(交)
\s 空白符(空格、tab、换行、换页和回车)
\S 非空白符([^\s])
\d 数字[0-9]
\D 非数字[^0-9]
\w 词字符[a-zA-Z0-9]
\W 非词字符[^\w]
逻辑操作符
XY Y跟在X后面
X|Y X或Y
(X) 捕获组。可以在表达式中用\i引用第i个捕获组
边界匹配符
^ 一行的起始
$ 一行的结束
\b 词的边界
\B 非词的边界
\G 前一个匹配的结束
量词
贪婪型
X? 一个或零个X
X* 零个或多个X
X+ 一个或多个X
X{n} 恰好n次X
X{n,} 至少n次X
X{n,m} X至少n次,且不超过m次
本文详细介绍正则表达式的各种应用场景,包括基本符号、字符类、逻辑操作符等,并通过实例展示如何进行字符串匹配、编辑及验证。同时,介绍了Java中如何利用String类的方法实现正则表达式的操作。
240

被折叠的 条评论
为什么被折叠?



