Java——正则表达式(二)

几个简单的Java正则用例

字符串验证

//查找以Java开头,任意结尾的字符串
Pattern pattern1 = Pattern.compile("^Java.*");
Matcher matcher = pattern1.matcher("Java你好");
//当条件满足时,将返回true,否则返回false
boolean b = matcher.matches();
System.out.println(b);

输出:true

多条件分割字符串

Pattern pattern2 = Pattern.compile("[,!. ]+");
String str[] = pattern2.split("hello Java! hello,yang zheng.");
for (String string : str) {
    System.out.println(string);
}

输出:
hello
Java
hello
yang
zheng

文字替换

//文字替换(首次出现字符)
Pattern pattern3 = Pattern.compile("[^a-z]");
Matcher matcher3 = pattern3.matcher("hello@yang$zheng%hello*java~!");
//将非字母的字符替换成空格
System.out.println(matcher3.replaceAll(" "));//replaceFirst替换第一个

输出:hello yang zheng hello java

Pattern pattern4 = Pattern.compile("[^a-z]");
Matcher matcher4 = pattern4.matcher("hello@yang$zheng%hello*java~!");
StringBuffer sbr = new StringBuffer();
while (matcher4.find()) {
  matcher4.appendReplacement(sbr, "?");
}
matcher4.appendTail(sbr);
System.out.println(sbr.toString());

输出:hello?yang?zheng?hello?java??

验证是否为邮箱地址

String str5="ceponline@yahoo.com.cn";
Pattern pattern5 = Pattern.compile("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+",Pattern.CASE_INSENSITIVE);
Matcher matcher5 = pattern5.matcher(str5);
System.out.println(matcher5.matches());

去除html标记

Pattern pattern6 = Pattern.compile("<.+?>", Pattern.DOTALL);
Matcher matcher6 = pattern6.matcher("<a href=\"index.html\">主页</a>");
String str6 = matcher6.replaceAll("");
System.out.println(str6);

查找html中对应条件字符串

Pattern pattern7 = Pattern.compile("href=\"(.+?)\"");
Matcher matcher7 = pattern7.matcher("<a href=\"index.html\">主页</a>");
if(matcher.find())
    System.out.println(matcher.group(1));

截取http://地址

//截取url
        Pattern pattern8 = Pattern.compile("(http://|https://){1}[\\w\\.\\-/:]+");
        Matcher matcher8 = pattern8.matcher("dsdsds<http://dsds//gfgffdfd>fdf");
        StringBuffer buffer = new StringBuffer();
        while(matcher.find()){
            buffer.append(matcher.group());
            buffer.append("\r\n");
        System.out.println(buffer.toString());
        }

替换指定{}中文字

String str9 = "Java目前的发展史是由{0}年-{1}年";
String[][] object={new String[]{"\\{0\\}","1995"},new String[]{"\\{1\\}","2007"}};
System.out.println(replace(str9,object));

public static String replace(final String sourceString, Object[][] object) {
        // TODO Auto-generated method stub
        String temp=sourceString;  
          for(int i=0;i<object.length;i++){
               String[] result=(String[])object[i];
            Pattern  pattern = Pattern.compile(result[0]);
            Matcher matcher = pattern.matcher(temp);
            temp=matcher.replaceAll(result[1]);
          }
          return temp;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值