package Ashier.javaclass;
import jdk.nashorn.internal.runtime.regexp.joni.Regex;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/**
* Demo class
*
* @author shier
* @date 2021/3/27
*/
public class My_Regex {
public static void main(String[] arg) throws ParseException {
//将str中的非字母替换为""去掉
String str = "^jadj*djsakldj(&^ksjfalfjnv(*^&jxkzchkj&^*";
String regex = "[^a-zA-Z]";
System.out.println(str.replaceAll(regex, ""));
//将字母中间的相同的数字去掉
String str2 = "a11b22c4444d555";
String regex2 = "\\d+";
String result[] = str2.split(regex2);
for (String s : result) {
System.out.println(s);
}
//验证一个字符串是否是数字,如果是转换为double
String str3 = "23.434";
String regex3 = "\\d+(\\.\\d+)?";//小数为可能出现或不出现
if(str3.matches(regex3)){
double data = Double.parseDouble(str3);
System.out.println(data);
}
//验证一个字符串是否是时间,是将其转换为Data
//String str4 = "2021-03-27";
String str4 = "2021-03-27 22:16:23";
if(str4.matches("\\d{4}-\\d{2}-\\d{2}")){
System.out.println(new SimpleDateFormat("yyyy-MM-dd").parse(str4));
}else if (str4.matches("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}")){
System.out.println(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(str4));
}
//用一个正则判断电话号码格式是否正确
//格式一:1234567 "\\d{7,8}" 电话7到8位
//格式二:0101234567 "(\\d{3,4})?\\d{7,8}" 区号3到4位
//格式三:(010)-1234567 "((\\d{3,4})?|(\\(\\d{3,4}\\)-)?)\\d{7,8}"
String str5 = "(010)-1234567";
String regex5 = "((\\d{3,4})?|(\\(\\d{3,4}\\)-)?)\\d{7,8}";
System.out.println(str5.matches(regex5));
//判断Email格式
//要求必须由字母开头, [a-zA-Z]
// 组成可以是字母、数字、_、-、. 所组成,用户名长度必须在6到15位之间,[a-zA-Z-_\\.0-9]{6,15}
//@ @
// 组成可以是字母、数字、_、-、. 所组成,用户名长度必须在6到15位之间,[a-zA-Z-_\\.0-9]{6,15}
//. \\.
// 后缀名必须是.com或.nt或.cn (com|nt|cn)
String str6 = "s123js-d.s@clkx-_.cn";
String regex6 = "[a-zA-Z][a-zA-Z-_\\\\.0-9]{6,15}@[a-zA-Z-_\\\\.0-9]{6,15}\\.(com|nt|cn)";
System.out.println(str6.matches(regex6));
}
}