Java 正则表达式
精确匹配
public class Main { public static void main(String[] args) { // TODO Auto-generated method stub String data = "this is text"; System.out.println(data.matches("this is text")); } }
输出:true
匹配空格:
public class Main { public static void main(String[] args) { // TODO Auto-generated method stub String data = "this is text"; System.out.println(data.matches("[this\\s]+[is\\s]+text")); } }
输出:true
匹配数字
public class Main { public static void main(String[] args) { // TODO Auto-generated method stub String data = "91"; System.out.println(data.matches("\\d[5-9]")); } }
返回:false(\\d表示0-9的数字,[5-9]表示5-9的一位数字)
匹配小数
public class Main { public static void main(String[] args) { // TODO Auto-generated method stub String data = "987"; System.out.println(data.matches("^(\\d+)(\\.\\d+)?")); } }
返回:true(这里的^表示以这个开头,这里表示以多个数字开头,后面的问好表示问号前的括号内容可选,也就是这里可是整数也可以是小数)
匹配中文
public class Main { public static void main(String[] args) { // TODO Auto-generated method stub String data = "我爱中国"; System.out.println(data.matches("[\u0391-\uFFE5]+")); } }
返回为true([\u0391-\uFFE5]表示中文的范围,A-¥)
匹配身份证号:
public class Main { public static void main(String[] args) { // TODO Auto-generated method stub String data = "342201201706159375"; System.out.println(data.matches("^(\\d{6})(18|19|20)(\\d{2})(0[1-9]|1[0-2])(0[1-9]|1\\d|2\\d|3[0-1])(\\d{3})(\\d|X|x)?$")); } }
返回时true,但是这个也不是太对的,可能会出现4月31号,但是事实上是没有4.31的。
心再坚强也不要独自飞翔