搜索 匹配 分割 替换 regex
Pattern
public static void main(String[] args) {
String str="abc";
//判断一个字符串是否是"abc"
System.out.println(str.equals("abc"));
//产生正则对象
Pattern p=Pattern.compile("abc");
//匹配器,将正则对象和实际对象进行匹配
Matcher m=p.matcher(str);
//进行判断
boolean b=m.matches();
System.out.println(b);
//字符串由三个字符组成,第一个是abc中一个,第二个是l/m/n一个
//第三个是hijk的一个
Pattern p1=Pattern.compile("[abc][lmn][hijk]");
Matcher m1=p1.matcher(str);
System.out.println(m1.matches());
//简化
System.out.println(str.matches("[abc][lmn][hijk]"));
//匹配由一个字母组成的字符串
System.out.println(str.matches("[a-zA-Z]"));
//匹配由一个数字组成的字符串
System.out.println(str.matches("[0-9]"));
//匹配由一个字符组成的字符串,不包括a/b/c
//[^ ]表示除了这些以外的其他字符
System.out.println(str.matches("[^abc]"));
//匹配以数字开头的由两个字符组成的字符串
//。通配符表示任意字符
System.out.println(str.matches("[0-9]."));
//匹配 .
//\\.先有java进行转义,转义为\.然后再由正则进行转义,转义为.
System.out.println(str.matches("\\."));
//匹配\
//先由java进行转义,转义为\\然后再由正则进行转义,转义为\
System.out.println(str.matches("\\\\"));
}
. 任何字符
\d 数字[0-9]
\D 非数字
\s 空白字符
\S 非空白字符
\w 单词字符【字母数字下划线】
\W 非单词字符
public static void main(String[] args) {
String str="";
//数量词-----每一个字符之后最多有一个数量词
//匹配由数字开头的字符串
//*表示之前的这个字符可以出现可以不出现>=0
System.out.println(str.matches("\\d.*"));
//匹配由数字开头至少有2个字符的字符串
//+ 表示之前的这个字符至少出现一次 >=1
System.out.println(str.matches("\\d.+"));
//匹配由数字开头至多有2个字符的字符串
//? 之前的这个字符至多出现一次 <=1
System.out.println(str.matches("\\d.?"));
}
数量词
x? <=1
x* >=0
x+ >=1
x{n} 恰好n次
x{n,} >=n
x{n.m} [n,m]
String str="";
//匹配由字母组成的长度为5的字符串
//{n}表示之前的这个字符出现n次==n
//{1,} -> +
//{0,} ->*
System.out.println(str.matches("[a-zA-Z]{5}"));
//匹配长度为6-12的字符串
System.out.println(str.matches(".{6,12}"));
public static void main(String[] args) {
String str="";
//输入一个字符串,判断这个字符串是否表示一个小数
System.out.println(str.matches("0\\.\\d+")||str.matches("[1-9]\\d*\\.\\d+"));
//输入一个字符串作为密码,判断这个密码是否合法,8-12位,
// 小写字母大写字母数字空格,至少出现两种
System.out.println(str.matches(""));
}