正则表达式的基本用法
使用单个字符串来描述/匹配一系列符合某个语法规则的字符串
正则表达式由两种基本字符组成
原义字符:字符本身就是一个正则表达式,例如 a, b, c ,\t ,\n ,\r ,\f等等
元字符: * + ? $ ^ () [] {}等等 【有特殊含义的字符】
正则表达式的分类
字符类: [abc] 将字符进行归类,可以出现[]中的其中一个 对abc其中一个进行匹配
[ ^ abc]对不是abc的字符进行匹配
范围类:
[a-z] 表示代表a-z中的一个字符
预定义类:
\d == [0-9] 数字 //digit的缩写
\D == [ ^ 0-9] 非数字
空白字符:[ \t\n\x0B\f\r] == \s
[ ^ \t\n\x0B\f\r ] == \S //space的缩写
[a-zA-Z0-9_] \w //word的缩写
[ ^ a-zA-Z0-9]\W
. 任何字符(与行结束符可能匹配也可能不匹配)
边界字符
^:以XXX开头
例如以a开头 ^a
$:以XXX结尾
例如以b结尾 b $
\b:单词边界 //目的是将单词隔开
\B:非单词边界
这里还有一个()的类型,目的是将正则表达式给围成一个块,可以用来整块进行操作,示例代码如下:
// 将日期2018-04-27 转换成为 04/27/2018
// 2018-04-27 ==> 04/27/2018
String regex = "(\\d{4})-(\\d{2})-(\\d{2})";
String ss = "2018-04-27";
System.out.println("原日期字符串:" + ss);
String replace = ss.replaceAll(regex, "$2/$3/$1");
System.out.println("使用正则修改后的日期字符串:" + replace);