本人实在是不擅长使用正则表达式,每次想要写正则就不停的网搜相似的或相近的,然后再改写成符合自己需要的。心累!所以,写这篇博客,是打算把工作中遇到的一些有用的正则记下来,以后再次用到就省事了。所以,这篇文章会陆续的更新,一开始可能很短,或者不是大家想要的或者觉得意义不大,大牛就跳过啦, 哈哈。各位看官见谅咯!
本人会在正则表达式后面紧跟测试例子,并且会在后续的工作中统一用下述方法进行测试:
public static boolean test(String s, String regex){
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
return m.matches();
}
//表示数字0(零)的字符串
public String ZERO = "(^[0][0]*$)|(^[0](\\.0){1,1}[0]*$)|(^[\\.][0][0]*$)";
public static void main(String[] args) {
System.out.println(test(".", ZERO)); //false
System.out.println(test("0.", ZERO));//false
System.out.println(test("0000.00000000000000000", ZERO));//false
System.out.println(test("0000", ZERO));//true
System.out.println(test("0.0", ZERO));//true
System.out.println(test("0.0000", ZERO));//true
System.out.println(test("0.00000000000000000", ZERO));//true
System.out.println(test(".00000000000000000", ZERO));//true
System.out.println(test(".0", ZERO));//true
}
//日期格式yyyy-MM-dd HH:mm:ss:
String PATTERN_DATETIME = "(^(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})$)";
对于字符串 String datePair = 2017-02-27 00:00:00|2017-02-27 23:59:59
如果希望按照符号 | 分解为两部分的字符串数组,应该使用:
datePair.split("\\|") 而不是 datePair.split("|");
java中split()特殊符号"." "|" "*" "\" "]"的分隔方式如下:
关于点的问题是用string.split("[.]") 解决。
关于竖线的问题用 string.split("\\|")解决。
关于星号的问题用 string.split("\\*")解决。
关于斜线的问题用 sring.split("\\\\")解决。
关于中括号的问题用 sring.split("\\[\\]")解决。