正则表达式中的匹配,替换,切割,获取,这四个使用时具体用哪一个,进行案例分析




import java.util.TreeSet;


/*
 * 
 * 匹配,替换,切割,获取,到底用四种功能中的哪一个呢?或者那几个呢?
 * 思路方式:
 * 1:如果只想知道该字符串是否对或错,使用匹配。
 * 2:想要将已有的字符串变成另一个字符串,替换。
 * 3:想要按照自定的方式将字符串变成多个字符串,切割。获取规则以外的子串
 * 4:想要拿到符合需求的字符串子串,获取。获取符合规则的子串
 * 
 */
public class RegexText {
public static void main(String[] args) {
replaceAll1();
IPSort();
checkMail();
}
//需求:将下列字符串转成:我要学编程
public static void  replaceAll1() {
String str="我我.....我我...我要....要要...要要....学学学.....学学...编编编....编编...程.程程...程..程..程";
/*
* 将已有字符串变成另一个字符串。使用替换功能:1可以先将.去掉
* 2:再将多个重复的内容变成单个的内容
*/
str=str.replaceAll("\\.+", "");
System.out.println(str);
str=str.replaceAll("(.)\\1+", "$1");
System.out.println(str);
}
/*
 * 192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30
 * 将IP地址进行地址段顺序的排列
 * 还按照字符串自然顺序,只要让他们每一段都是3位即可
 * 1:按照每一段需要的最多的0进行补齐,那么每一段就会至少保证有3位。
 * 2:将每一段只要保留3位。这样所有的IP地址都是每一段3位
 */
public static void  IPSort() {
String ip="192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.30";
ip=ip.replaceAll("(\\d+)", "00$1");
System.out.println(ip);
ip=ip.replaceAll("0*(\\d{3})", "$1");
System.out.println(ip);
String []arr=ip.split(" +");
TreeSet<String >ts=new TreeSet<String >();
for (String s : arr) {
ts.add(s);
}
for (String s : ts) {
System.out.println(s.replaceAll("0*(\\d+)", "$1"));
}
}
/*
 * 需求:对邮件地址进行校验
 */
public static void  checkMail() {
String mail="abc123@sina.com";
String reg="[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+){1,3}";//较为精确的匹配
reg="\\w+@\\w+(\\.\\w+)+";//相对不太精确的匹配
System.out.println(mail.matches(reg));
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值