常用的正则表达式
字符:匹配单个字符
a: 表示匹配字母a
\\ :匹配转义字符"\"
\t:匹配转义字符"\t"
\n:匹配转义字符"\n"。
一组字符:匹配里面单个字符
[abc] :表示可能是字母a 表示可能是字母b 表示可能是字母c
[^ abc] :表示不是字母a ,b ,c中的任意一个。
[a-zA-Z] : 表示全部字母中的任意一个。
[0-9] : 表示全部数字的任意一个。
边界匹配:在以后编写javaScript使用正则使用到
^:表示一组正则的开始
$:表示一组正则的结束
简写表达式:
.: 表示任意的一位字符
\d :表示任意的一位数字,等价于 .[0-9]
\D :表示任意的一位非数字,等价于 .[^0-9]
\w :表示任意的一位数字、字母、、等价于 .[a-zA-Z0-9]
\W :表示任意的一位非数字、字母、_、等价于 .[^a-zA-Z0-9 _]
\s :表示任意的一位空格、例如:“\n” ,“\t”等。
\S :表示任意的一位非空格
数量表示:
正则表达式?:出现0次或1次
正则表达式* :出现0次或1次或多次
正则表达式+:出现1次或多次
正则表达式{n}:出现n次
正则表达式{n,}:出现n次以上
正则表达式{n,m}:出现n-m次
逻辑表达式:
表达式A表达式B:表示表达式A之后紧跟着表达式B
表达式A|表达式B:表示表达式A或者表达式B,二者任选其一、
关于常用的正则表达式的应用。
package com.wu.常用类库2;
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class JavapIdemo {
public static void main(String[] args) throws ParseException {
String[] str = {"123","abc"};
for (int i=0;i<2;i++) {
//正则表达式\\d+判断是否位数字
if (str[i].matches("\\d+")) {
System.out.println("字符串是数字,转变成INT" + Integer.parseInt(str[i]));
} else {
System.out.println("我还是字符串,没有一丝丝改变" + str[i]);
}
}
/**
* 删除非字母和数字
*/
String str="WUHUA@234124——————&&@@java";
//非数字,字母都要被替换”“
String regix="[^a-zA-Z0-9]+";
System.out.println(str.replaceAll(regix,""));
//字符串拆分
String str="cewded214121grt";
String regix="\\d+";
String[] split = str.split(regix);
for (int i=0;i<split.length;i++){
System.out.println(split[i]+" ");
}
/**
* 判断一个数字是否是小数,并将其转换
*/
String str="100.1";
String regix="\\d+(\\.\\d+)?";
if (str.matches(regix)){
System.out.println("字符串是小数"+Double.parseDouble(str));
}else{
System.out.println("字符串不是小数");
}
//判断字符串是否由日期组成,然后转化为date类型
String str ="1981-03-31 12:31:22";
String regix="\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}";
if (str.matches(regix)){
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(str));
}else {
System.out.println("内容不是日期格式");
}
/**
* 判断号码格式是否正确
*/
String str="010-1234566";
String str="0101234567";
String str="1234567";
String regix="((\\d{3,4})|(\\(\\d{3,4}\\)-))?\\d{7,8}";
String regix="(\\d{3,4}?\\d{7,7})";
String regix="(\\d{7,7})";
System.out.println(str.matches(regix));
/**
* 邮箱格式验证
* /w表示等价于[a-zA-Z0-9]
*/
String str="1321312@fcwd.com";
String regix="[a-zA-Z0-9]\\w+@\\w+\\.(cn|com|com.cn|net|gov)";
System.out.println(str.matches(regix));
}
}