转自:
java如何使用正则表达式查找字符串中超链接标签的地址呢?z
正则表达式简介:
正则表达式,又称规则表达式,(RegularExpression,在代码中常简写为regex、regexp或RE),是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符"),是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开来的,后来在广泛运用于Scala、PHP、C#、Java、C、Objective-c、Perl、Swift、VBScript、Javascript、Ruby以及Python等等。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
正则表达式相关方法介绍:
1、exec()方法是一个正则表达式方法,用于检索字符串中的正则表达式的匹配。
函数返回一个数组中,其中数组中存放匹配的结果;如果未找到匹配,则返回值为null。
2、test()方法是一个正则表达式方法,用于检测一个字符串是否匹配某个模式,
如果字符串中含有匹配的文本,则返回true,否则返回false。
3、search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相配的子字符串,并返回子串的起始位置。
3.1、search()方法使用正则表达式,使用正则表达式搜索字符串,且不区分大小写
3.2、search()方法使用字符串,可使用字符串作为参数。字符串参数会转换为正则表达式
4、replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子字符串。
4.1、replace()方法使用正则表达式,使用正则表达式且不区分大小写将方法中的参数替换为字符串中的指定内容。
4.2、replace()方法使用字符串,将接收字符串作为参数。
5、match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
下文讲述使用正则表达式查找超链接标签地址的方法分享,如下所示:
实现思路:使用以下正则表达式,即可提取标签地址Patternpattern=Pattern.compile("href=/"(.?)/"");
例:
正则表达式Pattern及Matcher使用示例
packagecom.java265.other;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclasstestDom4J{/**java265.comPattern类的使用*/publicstaticvoidmain(String[]args){Stringstr="<ahref=\"http://java265.com\">java爱好者</a>";Patternpattern=Pattern.compile("(?<=(href=\\\")).*?(?=\\\")");Matchermatcher=pattern.matcher(str);StringBufferbuffer=newStringBuffer();while(matcher.find()){buffer.append(matcher.group());buffer.append("\r\n");}System.out.println(buffer.toString());System.out.println("------");}}-----运行以上代码,将输出以下信息-----http://java265.com------