加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式-java

发布时间:2020-12-14 01:22:47 所属栏目:百科 来源:网络整理
导读:package regexUtilTest;import java.util.TreeSet;import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexString {//1 匹配public boolean Matches(String src,String regex){boolean flag=false;if(src.matches(regex))flag=tr
package regexUtilTest;
import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexString {
	//1 匹配
	public boolean Matches(String src,String regex){
		boolean flag=false;
		if(src.matches(regex))
			flag=true;
		else
			flag=false;
		return flag;
	}
	//切割
	public String [] Split(String src,String reg){
		String a[] = src.split(reg);
		for (String string : a) {
			System.out.println(string);
		}
		return a;
	}
	
	//替换
	public String Replace(String src,String regex,String newstr){
		String newstring = 	src.replaceAll(regex,newstr);	
		System.out.println(newstring);
		return newstring;
	}
	
	
	

	//获取
	public void Get(String src,String regex){
		Pattern p = Pattern.compile(regex);
		Matcher m = p.matcher(src);
		while(m.find()){
			System.out.println(m.group());
			System.out.println(m.start()+":"+m.end());
			
		}
		
	}
	
	public static void main(String[] args) {
		RegexString regexString = new RegexString();
		String qq= "^[1-9]d{5,14}$";  
		String phone = "^(+86 )?1[358]d{9}$";  
		String str="wangtianyieeexiaolieeeezhaotianyugggglkjkj";
		String regex="(.)1+";
		String src = "13533828340";
		
		
		regexString.Replace(str,regex,"#");
		
		regexString.Replace(str,"$1");
		
		//需求 将手机号码中间几位数屏蔽
		regexString.Replace("15802397891","(d{3})(d{4})(d{4})","$1****$3");
		//regexString.Split(str,regex);
		
		
		//需求:取出3个字母的单词
		String src1="cheng xu yuan,yi sheng hei";
		String regex1="b[a-zA-Z]{3}b";
		regexString.Get(src1,regex1);
		
		//需求 替换叠词
		String question1 ="aaa....ccccc.........dddd.......eeeee....ccccc........ggggg.....eeewwwww.....";
		//首先替换掉.
		String q1=regexString.Replace(question1,".+","" );
		//然后替换掉重复字符
		regexString.Replace(q1,"(.)1+","$1");
		
		//需求:匹配ip分租    并 按照ip 排序 
		String ip = "172.168.5.34  22.22.245.123   33.22.33.1   2.43.56.113 224.22.3.53 ";
		//考虑到要排序可以用TreeSet排序 但是22.22.245.123 如果用treeset排序 就会比172.....1开头的打大 所以需要把所有ip转换成3位数 
		//因为ip每个.间的位数不同 将每个数字前加上两个0 则ip至少是3位以上
		String ip1 = ip.replaceAll("(d+)","00$1");
		//然后将多位的ip替换成3位
		ip1 = ip1.replaceAll("0*(d{3})","$1");
		System.out.println(ip1);
		//排序
		String ips[]=regexString.Split(ip1," +");
		TreeSet<String> ts =new TreeSet<String>();	
		for (String string : ips) {
			ts.add(string);
		}
		//输出
		System.out.println("---------------");
		for (String string : ts) {
			string=string.replaceAll("0*(d{1,3})","$1");
			System.out.println(string);
		}
		
		//匹配邮箱  注意下划线
		String mail = "eico@sin-omcn.com";
		String regexMail="(w{3}.)?[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_]+)+";
		String regexMail2="w+@w+-w+(.w+)+";	
		
		System.out.println(mail.matches(regexMail));
		System.out.println(mail.matches(regexMail2));
		

		String http = "^'http://w+(.w+)+(/[a-zA-Z0-9_-]+)*(.w+)*'$";
		String httpsrc=""http://www.bilibili.com/html/ma_pc.html"";
		System.out.println(httpsrc);
		System.out.println(httpsrc.matches(http));
		
		//需求:将a3ab2de5将数字之间的字符重复数字那么多次
		String qunaer = "a3ab2de5";
		String relexq="([a-z]+d)";
		//1在每个组之间添加一个#号便于分租
		String qunaer2=qunaer.replaceAll(relexq,"$1#");
		//2把它分成多个组
		String[] b=qunaer2.split("#");
		//3new一个可变长度的builder对象
		StringBuilder finalbuilder=new StringBuilder();
		for (String string : b) {
			Pattern p = Pattern.compile("d");
			Matcher m = p.matcher(string);
			int copy=0;
			while(m.find()){
				copy = Integer.parseInt(m.group());
				System.out.println(copy);
			}
			String newstr=string.replaceAll("([a-z]+)d","$1");
			StringBuilder builder =new StringBuilder(newstr);
			for (int j = 0; j < copy-1; j++) {					
				builder.append(newstr);
			}
			finalbuilder = finalbuilder.append(builder);
		}
		System.out.println(finalbuilder);
		
	}
	
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读