Java中——正则表达式

概述

  1. 就是一个字符串,正则表达式又称规则表达式。
  2. 作用: 专门用来检索 校验字符串的。
  3. Pattern:正则表达式的编译表示形式。
    CSDN不辞树
  4. String类提供了一个方法,进行字符串的校验: matches(String regex) 该方法 参数为正则表达式。
//		String  matches()
//		 判断用户名是否符合规则,要求长度在[2,5]的范围内,只能由字母、数字、下划线组成。
//		System.out.println("ac".matches("[a-zA-Z0-9_]{2,5}")&& "ac".matches("[^a]"));
//		System.out.println("ac".matches("\\w{2,5}"));

正则表达式的字符类

  1. 普通的字符串就是一个正则表达式,但是只能表达自己本身,无法匹配一类字符串
  2. 判断某个字符串是否和某个正则表达式的规则匹配,使用String 类中的matches 方法
  3. 字符类型:表示单个的字符,使用的符号是中括号
    说明:只要使用了方括号,无论里面写了多少内容,都表示单个的字符
  4. 方括号的表达方式:
[abc]:a或者h或者c中的一个
[^abc]:除了a、b、c以外的任何单个字符
[a-zA-Z]:az和A-Z中的任意单个字符

预定义字符类★

	    . 任何字符(与行结束符可能匹配也可能不匹配) 
		\d 数字:[0-9] 
		\D 非数字: [^0-9] 
		\s 空白字符:[ \t\n\x0B\f\r] 
		\S 非空白字符:[^\s] 
		\w 单词字符:[a-zA-Z_0-9] 
		\W 非单词字符:[^\w] 

数量词

X? X,一次或一次也没有 
X* X,零次或多次 
X+ X,一次或多次 
X{n} X,恰好 n 次 
X{n,} X,至少 n 次 
X{n,m} X,至少 n 次,但是不超过 m 次

边界匹配器

    ^ 行的开头 
	$ 行的结尾 
	\b 单词边界  

匹配中文

     [\u4e00-\u9fa5] 

字符串中和正则表达式有关的三个方法

1、boolean matches (String regex ):判断当前字符串是否和参数正则表达式匹配
2、String split (String regex )使用指定的正则表达式切割当前字符串
3、String replaceAll((String regex ,String replacement ):将调用者字符串中的所有匹配regex 正则的子串,全都替换成replacement 新串。replace不支持正则。
分组:() 表示分组,取值,取组值:$组名。

public class 正则表达式 {
public static void main(String[] args) {
   System.out.println("ac".matches("a"));
   System.out.println("ac".matches("[a-zA-Z0-9_]{2,5}"));
   System.out.println("ac".matches("[^a]"));
//	邮箱:规则:随意+@+字母 /数字+.com
	//注意:点表示任意字符,如果需要使用表示点,需要转义。
	String emailReg = ".+@[a-zA-Z0-9]{2}\\.com";
	System.out.println("12325610@qq.com".matches(emailReg));
	String s ="1234aba23sfd0909dfa123";
	//拆分根据数字/字母拆分
	String[] arr = s.split("\\d+");
	String[] arr1 = s.split("[a-zA-Z]+");
	for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
	}
	//替换字母部分为*
	System.out.println(s.replaceAll("[a-zA-Z]+", "*"));
	// ****   
	String  s1="15123428901";
	System.out.println(s1.replaceAll("(1[3-8][0-9])\\d{4}(\\d{4})", "$1****$2"));
}
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值