Java SE之正则表达式一:概述
正则表达式
概念
- 
定义:符合一定规则的表达式 
- 
作用:用于专门操作字符串 
- 
特点:用于一些特定的符号表示代码的操作,这样就简化了长篇的程序代码 
- 
好处:可以简化对字符串的复杂操作 
- 
弊端:符号定义越多,正则越长,阅读性越差 
关键类
- String
- Pattern:正则类对象
- Matcher:通过解释Pattern对character sequence执行匹配操作的引擎类。(匹配器)
具体操作功能
匹配:返回是否与规则匹配的布尔值
1 String:
	boolean string.matches(String regex)
2 Pattern + Matcher:
	Pattern pattern.compile(String regex)
  	Matcher pattern.matcher(String regex) 
  	boolean matcher.matches()
3 Pattern
	boolean b = Pattern.matches(String regex, String string)
切割:返回符合规则以外的字符串
1 String:String[] split(String regex)
2 String:String[] split(String regex, int limit)
> 为了让规则的结果被重用,可以让规则封装成一个组,用()完成。组的出现都有编号:
	从1开始想要使用已有的组可以通过格式:\ + 组序号
	Eg:以叠词作为分隔符号,切隔字符串:(.)\1+
	Eg:		(X(Y(Z)))(M)
	   	组号:1 2 3    4	
替换:返回被规则替换的字符串
1 String:String replaceAll(String regex, String replacement):regex-\n
2 String:String replaceFirst(String regex, String replacement):replacement-$n
3 Pattern + Matcher:
	Pattern pattern.compile(String regex)
  	Matcher pattern.matcher(String regex) 
  	-------------------------------------
  	String matcher.quoteReplacement(String s)
  	String matcher.replaceAll(String replacement)
  	String replaceFirst(String replacement) 
获取:将字符串中的规则的子串取出
将正则表达式封装成对象;让正则表达式和要操作的字符串相关联;关联后,获取正则匹配引擎;通过引擎对符合规则的子串进行操作,如:取出
1 	//step1:将规则封装成对象
	Pattern pattern = Pattern.compile(regex);
	
	//step2:让正则对象和要提取的字符串相关联,获取匹配(器)引擎对象
	Matcher matcher = pattern.matcher(string);
	
	while(matcher.find()) {//不断地利用正则引擎查找符合正则表达式的对象,找到:true;没有找到:false
		System.out.println("start:" + matcher.start() + " word:" + matcher.group() + " end:" + matcher.end());//返回当前查找到的一个子串,并返回其单词的开始start()与结束区间end()
	}
参考文献
[黑马程序员_毕向东_Java基础视频教程第25天](http://www.huahuionline.com/MainCtrl?page=ShowLessonDetailPage&lesson_id=56c1838945ceb61ab5246f3d&cNo=1)
 
    
    本文作者:
        千千寰宇
    
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号