正则表达式(Pattern和Matcher类的使用以及String类的分割功能)

来源:互联网 发布:windows一键还原软件 编辑:程序博客网 时间:2024/06/02 06:35

从下面的字符串中抽取出网址,并将网址中的除了www com的中间字符串取出(比如java,hello,sina),最后将其打印。

提示:抽取网址使用正则表达式,抽取中间字符串使用字符串切分方法

package com.test_wangzi;


import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class WangZi{

public static void main(String[] args){

String src = "someday#www.java.com?hello www.hello.cn>do www.sina.cn+while+www.baidu.com/for*www.yahoo.com*someday-www.java.com-hello+www.hello.cn+do(www.sina.cn)while(www.baidu.com)for-www.yahoo.com"; 

String regex="\\b\\w+\\.\\w+\\.\\w+\\b";//定义正则表达式来抽取网址

Pattern p = Pattern.compile(regex);//编译一个正则表达式,得到一个Pattern对象p

Matcher m = p.matcher(src);//调用p的matcher()方法得到一个Matcher对象m

while(m.find()){//调用m的find()方法查看是否有匹配的字符串

String group = m.group();//如果有,调用group()方法将结果取出
String regex2="\\.";//定义正则表达式来分割group字符串
String[] str = group.split(regex2);//调用split方法进行分割,返回值为字符串数组
String string = Arrays.toString(str);//将字符串数组通过toString方法转换为字符串
System.out.println(string);
System.out.println(str[1]);//输出分割以后满足要求的数组元素

}

}

}

0 0