正则表达式的常见规则
1.字符类[abc]:字符必须是abc其中一个[a-z]:字符必须是小写字母[A-Z]:字符必须是大写字母[a-zA-Z]:字符必须是字母[^abc]:字符不能是abc其中一个[^a-z]:字符不能是小写字母[^a-zA-Z]:字符不能是字母2.预定义字符类. 匹配任意字符\d 匹配数字\D 匹配非数字\w 匹配单词字符 \\w==[a-zA-Z0-9_] 数字字母下划线\W 匹配非单词字符3.数量词x* 字符出现0次或多次x? 字符出现一次或一次也没有x+ 字符出现一次或多次x{n} 字符刚好出现n次x{n,} 字符最少出现n次x{n,m] 字符最少出现n次,最多出现m次4.边界匹配^ 匹配行的开头$ 匹配行的结尾\b 匹配英语单词
package com.book.lite;
import java.util.regex.*;/*** @author zhangyu* @date 2021年08月17日 12:38 下午* 正则表达式* 1.正常运用* 2.切割slit()* 3.替换replaceAll(规则,替换后内容)* 4.正则表达式的获取功能(查看自己的正则表达式是否正确):实现步骤* import java.util.regex.*;* 1.使用Pattern类的静态方法compile,将正则规则预匹配* static Pattern compile(正则规则)* 返回Pattern类对象** 2.使用Pattern类的非静态方法matcher,将正则规则与查找的字符串匹配* Matcher matcher(字符串)* 返回Matcher类的对象** 3.使用Matcher类的方法find() 查找符合规则的字符串,如果有返回true** 5.使用Matcher类的方法group() 获取内容**/
public class RegexDemo {public static void main(String[] args) {
// System.out.println(methon_1());
// System.out.println(methon_2());
// System.out.println(methon_3());
// System.out.println(methon_4());
// System.out.println(methon_5());
// System.out.println(methon_6());
// methon_7();
// methon_8();
// methon_9();methon_10();}/**** @author zhangyu* @date 2021/8/17 12:41 下午* @return boolean* 判断一个四个字母的字符串中间字母是否是元音*/public static boolean methon_1(){String a = "bopl";boolean A = a.matches("b[aeiouAEIOU]{2,}l");return A;}/**** @author zhangyu* @date 2021/8/17 11:31 下午* @return boolean* 判断一个字符串中是否含有数字*/public static boolean methon_2(){String b = "a2c";boolean B = b.matches("a[\\d]c");return B;}/**** @author zhangyu* @date 2021/8/17 11:43 下午* @return boolean* 判断字符串中无数字*/public static boolean methon_3(){String c = "asd";boolean C = c.matches("[a-z][\\D][a-z]");return C;}/**** @author zhangyu* @date 2021/8/17 11:46 下午* @return boolean* 判断一个字符串中,某个字符只能出现一次,或一次都没有*/public static boolean methon_4(){String d = "ab";boolean D = d.matches("a?b?");return D;}/**** @author zhangyu* @date 2021/8/17 11:51 下午* @return boolean* 判断一个字符串中,某个字符串可有可无*/public static boolean methon_5(){String e = "a";boolean E = e.matches("ab*");return E;}/**** @author zhangyu* @date 2021/8/17 11:55 下午* @return boolean* 判断一个字符串中,某个字符至少出现一次*/public static boolean methon_6(){String f = "look";boolean F = f.matches("o+");return F;}/**** @author zhangyu* @date 2021/8/18 12:07 上午* 使用String类切割功能*/public static void methon_7(){String g = "wergghjkgll";String [] G = g.split("g+");for(int x =0; x < G.length ; x++){System.out.println(G[x]);}}/**** @author zhangyu* @date 2021/8/18 11:32 下午* 使用字符串的替换功能replaceAll() 只有这个方法支持正则*/public static void methon_8(){String h = "sdfghj23nfy5dssldi5";String H = h.replaceAll("\\d","#");System.out.println(H);}/**** @author zhangyu* @date 2021/8/18 11:58 下午* 匹配出一句话中有四个字母的单词*/public static void methon_9(){String str = "what is your name my name is Alina";Pattern p = Pattern.compile("\\b[a-zA-Z]{4}\\b");Matcher m = p.matcher(str);while (m.find()){System.out.println(m.group());}}public static void methon_10(){String email = "abcd123@asd.com.cn";boolean i = email.matches("[\\w]+@[a-z0-9]+(\\.[a-z]+)+");System.out.println(i);}}