如题,比如
<a class = "ffff" href = "...." 还有些脚本>显示</a>
我如下写的,
<a [^<]*href[ ]?=[ ]?"http://[a-zA-Z0-9/_.]*"[^<]*>[^<]*[公司厂]+</a>
可是,很奇怪的是匹配的时候。每次得到8个结果。如果从最后一个那里继续找,能找到后面的8个匹配字串,依次至结束。为什么会这样呢?谁能帮忙看看。谢谢了先。
<a class = "ffff" href = "...." 还有些脚本>显示</a>
我如下写的,
<a [^<]*href[ ]?=[ ]?"http://[a-zA-Z0-9/_.]*"[^<]*>[^<]*[公司厂]+</a>
可是,很奇怪的是匹配的时候。每次得到8个结果。如果从最后一个那里继续找,能找到后面的8个匹配字串,依次至结束。为什么会这样呢?谁能帮忙看看。谢谢了先。
http://list.china.alibaba.com/company/list/1351.html
这个页面源码里面所有的超连接做例子。
我那个需要如何修改呢。
Regex RegexObj = new Regex("<a [^<]*href[ ]?=[ ]?\"http://[a-zA-Z0-9/_.]*\"[^<]*>[^<]*[公司厂]+</a>");
Match MatchResults = RegexObj.Match(SubjectString);
while (MatchResults.Success) {
MatchResults = MatchResults.NextMatch();
}
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}
import java.io.*;/**
* @author linuxyf
*
*/
public class TestMatch { public static void main(String[] args) {
StringBuffer content = null;
String str = "";
try {
// 读源文件内容
content = new StringBuffer();
String newline = System.getProperty("line.separator");
FileReader fr = new FileReader("D:\\test.txt");
BufferedReader br = new BufferedReader(fr);
while((str = br.readLine()) != null) {
content.append(str + newline);
}
br.close();
fr.close();
// 把读到的内容写到一个文件中,和源文件比较,看是不是读取是正确的
FileWriter fw = new FileWriter("D:\\tt.txt");
fw.write(content.toString());
fw.close();
// 匹配
Pattern Regex = Pattern.compile("<a [^<]*href[ ]?=[ ]?\"http://[a-zA-Z0-9/_.]*\"[^<]*>[^<]*[公司厂]+</a>",
Pattern.CANON_EQ);
Matcher RegexMatcher = Regex.matcher(content.toString());
while (RegexMatcher.find()) {
System.out.println(RegexMatcher.group());
}
}
catch(Exception e) {
System.out.println(e.getMessage());
}
}
}
http://community.csdn.net/Expert/TopicView.asp?id=4216910