正则表达式

                                         正则表达式

正则表达式:
       正则表达式:是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串,其实就是一种规则。有自己特殊的应用。(符合一定规则的字符串)
       字符:
              x 字符 x。
              \\  反斜杠字符
              \n  换行符 ('\u00A')
              \r   回车父 ('\u000D')
       字符类:
              [abc]  a、b 或 c(简单类)
              [^abc] 任何字符,除了a、b 或 c (否定)
              [a-zA-Z]  a到z 或 A 到 Z。
              [0-9]  0 到 9 的字符都包括
       预定义字符类
              .  任何字符: . 字符本身用 \. 表示(转义)
              \d  数字:[0-9]
              \w  单词字符:[a-zA-Z_0-9] 在正则表达式中组成单词的东西必须有这些东西组成
        边界匹配器
               ^ 行的开头
               $ 行的结尾
               \b 单词边界 (就是不是单词的地方)
        X? X,一次或零次
        X* X,零次或多次
        X+ X,一次或多次
        X{n}  X,恰好n 次
        X{n, }  X,至少n 次
        X{n,m} X,至少n 次,但是不超过m 次
正则表达式应用:
       判断功能
              public boolean matches(String regex)
       分割功能:
              public String[] split(String regex)
       替换功能:
              public String replaceAll(String regex,String replacement)
       获取功能:
              Pattern和Matcher类的使用
 

import java.util.Scanner;

/*
 *校验邮箱
 *
 *1517806588@qq.com
 *liuyi@163.com
 *linqingxia@126.com
 *fenggingyan@sina.com.cn
 *fqy@itcast.cn
 * 
 */

public class RegexDemo {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入邮箱:");
		String s = sc.nextLine();
		
		String regex = "\\w+@\\w{2,6}+(\\.\\w{2,3})+";
		
		System.out.println("是否为邮箱:"+s.matches(regex));
	}
}


/*
*分割功能
 *
*/
public class RegexDemo2 {
	public static void main(String[] args) {
		
		String s = "aa,bb,cc";
		String [] arrge = s.split(",");
		for(int i=0; i<arrge.length;i++) {
			System.out.println(arrge[i]);
		}
		System.out.println("------------------");
		
		s = "xx.yy.zz";
		String [] arrge2 = s.split("\\.");
		for(int i=0; i<arrge2.length;i++) {
			System.out.println(arrge2[i]);
		}
		System.out.println("------------------");
		
		s = "aa   bb         cc";
		String [] arrge3 = s.split(" +");
		for(int i=0; i<arrge3.length;i++) {
			System.out.println(arrge3[i]);
		}
		System.out.println("------------------");
		
		s = "aa   bb         cc";
		String [] arrge4 = s.split(" +");
		for(int i=0; i<arrge4.length;i++) {
			System.out.println(arrge4[i]);
		}
		System.out.println("------------------");
		
		s= "F:\\develop\\eclipse-workspace\\study";
		String [] arrge5 = s.split("\\\\");
		for(int i=0; i<arrge5.length;i++) {
			System.out.println(arrge5[i]);
		}
	}
}
-----------------------------------------------------------------------------
结果:
aa
bb
cc
------------------
xx
yy
zz
------------------
aa
bb
cc
------------------
aa
bb
cc
------------------
F:
develop
eclipse-workspace
study
------------------

/*
 * 替换功能
 * */
public class RegexDemo3 {
	public static void main(String[] args) {
		String s = "helloqq1234567worldkh6221112345678java";
		
		String regex = "\\d";
		
		String ss = "*";
		
		String result = s.replaceAll(regex, ss);
		
		System.out.println(result);
	}
}

结果:
helloqq*******worldkh*************java



import java.util.regex.Matcher;
import java.util.regex.Pattern;

/*
 * 获取功能:
 *      Pattern和Matcher的使用
 * */
public class RegexDemo4 {
	public static void main(String[] args) {
		//模式和匹配器的典型调用功能
		//把正则表达式编译成模式对象
		Pattern p = Pattern.compile("a*b");
		//通过模式对象得到匹配器对象,需要的是被匹配的字符串
		 Matcher m = p.matcher("aaaaab");
		 //调用匹配器对象的功能
		boolean b = m.matches();
		System.out.println(b);
		
		//判断功能,可以直接用字符串的方法做
		String s = "aaaab";
		String regex = "a*b";
		boolean bb = s.matches(regex);
		System.out.println(bb);
	}
}
--------------------------------------------------------------------------------
结果:
true
true

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo5 {
	public static void main(String[] args) {
		//字符串 
		String s = "da jia ting wo shuo,jin tian yao xia yu le,bu shang wan zi xi";
		 //规则
		 String regex = "\\b\\w{3}\\b";
		 
		 //把规则编译成模式对象
		 Pattern p = Pattern.compile(regex);
		 //通过模式对象得到匹配器对象
		 Matcher m = p.matcher(s);
		 
		 //调用匹配器对象的功能
		 while(m.find()) {
			 System.out.println(m.group());
		 }
	}
}
--------------------------------------------------------------------
结果:
jia
jin
yao
xia
wan

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值