正则表达式

package com.zixue;

import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

 
 public static void main(String args[]){
 
  /*String regex = "m(a|f|af)n";
  Pattern pt = Pattern.compile(regex);
  Matcher match = pt.matcher("mavnmafnff");
  System.out.println(match.find());
  System.out.println(match.replaceAll("b").toString());*/
  get7();
 }
 
 
 
 
 //句点符号 --->这是因为句点符号匹配所有字符,包括空格、Tab字符甚至换行符
 public static void get1(){
  String regex="m.n";
  Pattern pt = Pattern.compile(regex);
  Matcher match = pt.matcher("man-mafn-ff");
  System.out.println("句点符找到匹配:"+match.find());
  System.out.println("把找到匹配的给去掉:"+match.replaceAll("b").toString());
 }
 
 //方括号之内只能匹配单个字符
 public static void get2(){
  String regex="m[afd]n";
  Pattern pt = Pattern.compile(regex);
  Matcher match = pt.matcher("man-mafn-ff");
  System.out.println("方括号找到匹配:"+match.find());
  System.out.println("方括号把找到匹配的给去掉:"+match.replaceAll("b").toString());
 }
 
 //圆括号还可以用来分组,或符合的使用‘|’
 public static void get3(){
  String regex="m(a|af)n";
  Pattern pt = Pattern.compile(regex);
  Matcher match = pt.matcher("man-mafn-ff");
  System.out.println("使用圆括号找到匹配:"+match.find());
  System.out.println("使用圆括号找到匹配的给去掉:"+match.replaceAll("b").toString());
 }
 
 
 //表示匹配次数的符号--这些符号用来确定紧靠该符号左边的符号出现的次数
 //‘*’号表示0或者多次---‘+’号表示1次或者多次---‘?’号表示0次或者1次----‘{n}’恰好n次----‘{n,m}’从n到m次
 //连字符(“-”)有着特殊的意义,它的前面要加上一个转义字符“\”。
 
 //匹配次数的使用,匹配如下格式的字符串‘999-99-9999’
 public static void get4(){
  String regex="[0-9]{3}\\-[0-9]{2}\\-[0-9]{4}";
  Pattern pt = Pattern.compile(regex);
  Matcher match = pt.matcher("a939-94-9399f");
  System.out.println("找到匹配:"+match.find());
  System.out.println("找到匹配的给去掉:"+match.replaceAll("b").toString());
 }
 
 //希望连字符号可以出现,也可以不出现,‘999-99-9999’和‘999999999’都属于正确的格式
 public static void get5(){
  String regex="[0-9]{3}\\-?[0-9]{2}\\-?[0-9]{4}";
  Pattern pt = Pattern.compile(regex);
  Matcher match = pt.matcher("a939949399f");
  System.out.println("找到匹配:"+match.find());
  System.out.println("找到匹配的给去掉:"+match.replaceAll("b").toString());
 }
 //“^”符号称为“否”符号。如果用在方括号内,“^”表示不想要匹配的字符
 //[^a][a-z]+ 第一个字符不能是‘a',后续字符可以是'a'到’z'之间的任意字符
 public static void get6(){
  String regex="[^a][a-z]+";
  Pattern pt = Pattern.compile(regex);
  Matcher match = pt.matcher("afsffsaxa");
  System.out.println("找到匹配:"+match.find());
  System.out.println("找到匹配的给去掉:"+match.replaceAll("b").toString());
 }
 
 //从格式为“June 26, 1951”的生日日期中提取出月份
 public static void get7(){
  String regex="af";
  Pattern pt = Pattern.compile(regex);
  Matcher match = pt.matcher("afafafafa");
  StringBuffer buffer = new StringBuffer();
  
  //找到匹配的并把匹配的输出
  while(match.find()){
   buffer.append(match.group()+"\n");
  }
  System.out.println(buffer.toString());
  
 
 }
 
 //等价符合
 // \d==[0-9]   \D ==[^0-9]     \w==[A-Z0-9]  \W==[^A-Z0-9]   \s[\t\n\r\f] \S ==[^\t\n\r\f]

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值