Java正则总结
Posted xiaozhang666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java正则总结相关的知识,希望对你有一定的参考价值。
1. [abc]:代表a或者b,或者c字符中的一个。 2. [^abc]:代表除a,b,c以外的任何字符。 3. [a-z]:代表a-z的所有小写字符中的一个。 4. [A-Z]:代表A-Z的所有大写字符中的一个。 5. [0-9]:代表0-9之间的某一个数字字符。 6. [a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符。 7. [a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符。
/** * 字符类 */ public class RegTestDemo01 { public static void main(String[] args) { String str = "oad"; //1.验证str是否以h开头,以d结尾,中间是a,e,i,o,u中某个字符 System.out.println(str.matches("h[aeiou]d")); //2.验证str是否以h开头,以d结尾,中间不是a,e,i,o,u中的某个字符 System.out.println(str.matches("h[^aeiou]d")); //3.验证str是否a-z的任何一个小写字符开头,后跟ad System.out.println(str.matches("[a-z]ad")); //4.验证str是否以a-d或者m-p之间某个字符开头,后跟ad System.out.println(str.matches("[a-dm-p]ad")); } }
1. "." : 匹配任何字符。 2. "d":任何数字[0-9]的简写; 3. "D":任何非数字[^0-9]的简写; 4. "s": 空白字符:[ x0Bf ] 的简写 5. "S": 非空白字符:[^s] 的简写 6. "w":单词字符:[a-zA-Z_0-9]的简写 7. "W":非单词字符:[^w]
/** * 预定义字符 */ public class RegTestDemo03 { public static void main(String[] args) { String str = "had."; //1.验证str是否3位数字 System.out.println(str.matches("\d\d\d")); //2.验证手机号:1开头,第二位:3/5/8,剩下9位都是0-9的数字 String phone = "18600363521"; System.out.println(phone.matches("1[358]\d\d\d\d\d\d\d\d\d")); //3.验证字符串是否以h开头,以d结尾,中间是任何一个字符 System.out.println(str.matches("h.d")); //4.验证str是否是:"had." System.out.println(str.matches("had\."));//\. 就代表内容"." } }
1. X? : 0次或1次 2. X* : 0次到多次 3. X+ : 1次或多次 4. X{n} : 恰好n次 5. X{n,} : 至少n次 6. X{n,m}: n到m次(n和m都是包含的)
/** * 数量词 */ public class RegTestDemo04 { public static void main(String[] args) { String str = "1358654234567"; //1.验证str是否是三位数字 System.out.println(str.matches("\d{3}")); //2.验证str是否是多位数字 System.out.println(str.matches("\d{2,}")); //3.验证str是否是手机号:1开头,第二位:3/5/8,剩下9位都是0-9的数字 String phone = "18600363521"; System.out.println(phone.matches("1[358]\d{9}")); //4.验证小数:必须出现小数点,但是只能出现1次 String num = "4.13"; System.out.println(num.matches("\d+\.\d+")); //5.验证小数:小数点可以不出现,也可以出现1次 System.out.println(num.matches("\d+\.?\d+")); //6.验证小数:要求匹配:+3、+3.、+3.14、+3.14、-3 System.out.println(num.matches("[+-]?\d+\.?\d*")); //7.验证qq号码:1).5--15位;2).全部是数字;3).第一位不是0 String qq = "359614724"; System.out.println(qq.matches("[1-9]\d{4,14}")); } }
() 分组符号 /** * 分组括号 */ public class RegTestDemo05 { public static void main(String[] args) { String str = "DG8FV-B9TKY-FRT9J-99899-XPQ4G"; //验证这个序列号:分为5组,每组之间使用-隔开,每组由5位A-Z或者0-9的字符组成 System.out.println(str.matches("([A-Z0-9]{5}-){4}[A-Z0-9]{5}")); } }
public String[] split(String 切割符); /** * String的split方法 * RegulationExpression regex */ public class RegTestDemo06 { public static void main(String[] args) { String str = "18--4+++++567+++99------56"; //切割字符串 String[] split = str.split("[+-]+"); System.out.println(Arrays.toString(split)); } } /** * String的replaceAll方法 * RegulationExpression regex */ public class RegTestDemo07 { public static void main(String[] args) { String str = "jfdk432jfdk2jk24354j47jk5l31324"; //将字符串中的数字替换为*,如果相邻都是数字,只要一个* String newStr = str.replaceAll("\d+", "*"); System.out.println(newStr); } }
以上是关于Java正则总结的主要内容,如果未能解决你的问题,请参考以下文章