正则表达式-java
来源:互联网 发布:python 入门教程 知乎 编辑:程序博客网 时间:2024/06/02 03:17
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;elseflag=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, regex, "$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);}}
0 0
- Java 正则表达式正则
- 【正则表达式】Java正则表达式
- 正则表达式 JAVA正则表达式
- 【Java】【正则表达式】正则表达式
- Java 正则表达式详解_正则表达式
- java正则表达式!正则表达式踩坑!!!
- 正则表达式工具类,正则表达式封装,Java正则表达式
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- java和正则表达式
- java正则表达式详解!
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- iOS测试-模拟器下键盘不能弹出
- 欢迎使用CSDN-markdown编辑器
- Spring学习3:IOC容器概述
- C++学习第一日
- C++的虚函数和多态性
- 正则表达式-java
- MySQL数据库中的安全解决方案
- zepto+html5+php实现h5上传头像(移动端)上
- android 网络请求 http
- Linux cp命令大全
- Python初学者需要注意的问题
- hdu 1074——Doing Homework
- 方便与IOS开发的宏定义----别人的东西,自己记录一下
- Unity3D游戏开发之编辑器扩展程序开发实例