首页 > 编程 > Java > 正文

JAVA中正则表达式匹配,替换,查找,切割的方法

2020-03-24 18:57:01
字体:
来源:转载
供稿:网友
str.split((1)//.+)按照字符串中含有2个字符或以上的地方截取(1)表示分组为1截取的例子;按照分组截取;截取的位置在两个或两个以上的地方String str = "publichtml' target='_blank'>staticccvoidddmain"; //对表达式进分组重用 String ragex1="(.)//1+"; String[] ss = str.split(ragex1); for(String st:ss){ System.out.println(st); //按照两个cc+来截取String ragex = " "; //切割 String strs = "publicstaticccvoidddmain"; String ragexs = "cc+"; String[] s = strs.split(ragexs); for(String SSSS :s){ System.out.println(SSSS); System.out.println("=-=========");正则表达式中的替换;语法定义规则;String s =str.replaceAll(ragex, newstr);字符串中的替换是replace();将4个或4个以上的连续的数字替换成*// 替换 String str="wei232123jin234"; String ragex = "//d{4,}"; String newstr = "*"; String s =str.replaceAll(ragex, newstr); System.out.println(s);将重复的字符串换成一个*String str ="wwweiei222222jjjiiinnn1232"; String ragex ="(.)//1+"; String newStr ="*"; String s = str.replaceAll(ragex, newStr); System.out.println(s);将 我...我...要..要.吃...吃...饭 换成 我要吃饭String str = "我...我...要..要.吃...吃...饭"; String regex = "//.+"; String newStr = ""; str=test(str, regex, newStr); regex = "(.)//1+"; newStr = "$1"; test(str, regex, newStr);public static String test(String str, String regex, String newStr) { String str2 = str.replaceAll(regex, newStr); System.out.println(str2); return str2; }正则表达式的字符串的获取1,根据定义的正则表达式创建Pattern对象2,使用Pattern对象类匹配3,判断是否为true4,加入到组例子;String str = "public static void main(String[] args)" + " public static void main(String[] args)public static void main(String[] args)"; String ragex = "//b[a-zA-Z]{4,5}//b"; Pattern p =Pattern.compile(ragex); Matcher m = p.matcher(str); while(m.find()){ String s = m.group(); System.out.println(s); }作业:1,获取 html user /user 中的userString str =" html user /html String regex = " html | /html String newStr = ""; String str2 = str.replaceAll(regex, newStr);System.out.println(str2);2,获取dhfjksaduirfn 11@qq.com dsjhkfa wang@163.com wokaz中的邮箱号码String regex = " "; String[] strs=str.split(regex); for(String str2:strs){ String ragexDemo = "[a-zA-Z0-9]([a-zA-Z0-9]*[-_] [a-zA-Z0-9]+)*" + "@([a-zA-Z0-9]+)//.[a-zA-Z]+//. [a-zA-Z]{0,2}";Pattern p = Pattern.compile(ragexDemo);Matcher m = p.matcher(str2);while(m.find()){System.out.println(m.group()); }示例代码:import java.util.ArrayList;import java.util.regex.Matcher;import java.util.regex.Pattern;public class test { public static void main(String[] args) { getStrings(); //用正则表达式获取指定字符串内容中的指定内容 System.out.println("********************"); replace(); //用正则表达式替换字符串内容 System.out.println("********************"); strSplit(); //使用正则表达式切割字符串 System.out.println("********************"); strMatch(); //字符串匹配 private static void strMatch() { String phone = "13539770000"; //检查phone是否是合格的手机号(标准:1开头,第二位为3,5,8,后9位为任意数字) System.out.println(phone + ":" + phone.matches("1[358][0-9]{9,9}")); //true String str = "abcd12345efghijklmn"; //检查str中间是否包含12345 System.out.println(str + ":" + str.matches("//w+12345//w+")); //true System.out.println(str + ":" + str.matches("//w+123456//w+")); //false private static void strSplit() { String str = "asfasf.sdfsaf.sdfsdfas.asdfasfdasfd.wrqwrwqer.asfsafasf.safgfdgdsg"; String[] strs = str.split("//."); for (String s : strs){ System.out.println(s); private static void getStrings() { String str = "rrwerqq84461376qqasfdasdfrrwerqq84461377qqasfdasdaa654645aafrrwerqq84461378qqasfdaa654646aaasdfrrwerqq84461379qqasfdasdfrrwerqq84461376qqasfdasdf"; Pattern p = Pattern.compile("qq(.* )qq"); Matcher m = p.matcher(str); ArrayList String strs = new ArrayList String while (m.find()) { strs.add(m.group(1)); for (String s : strs){ System.out.println(s); private static void replace() { String str = "asfas5fsaf5s4fs6af.sdaf.asf.wqre.qwr.fdsf.asf.asf.asf"; //将字符串中的.替换成_,因为.是特殊字符,所以要用/.表达,又因为/是特殊字符,所以要用//.来表达. str = str.replaceAll("//.", "_"); System.out.println(str); }PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表