日期:2014-05-18  浏览次数:20662 次

请前辈帮我看看这个正则该怎么写
<TR align="center" bgcolor="#fbfbfb" onDblClick="clip('85.120.220.27:3128');alert('已拷贝到剪贴板!')" onMouseOver="this.style.backgroundColor='#E1E8E8';return true;" onMouseOut="this.style.backgroundColor='#fbfbfb';"><TD class="list">1</TD><TD class="list"><SCRIPT LANGUAGE="JavaScript">
<!--
document.write("85.");
document.write("120.");
document.write("220.");
document.write("27");
//--></SCRIPT></TD><TD class="list">3128</TD><TD class="list">HTTP</TD><TD class="list">罗马尼亚</TD><TD class="list">11-13 15:48</TD><TD class="list">0.084</TD><TD class="list"><a href=whois.php?whois=85.120.220.27 target=_blank>whois</TD></TR>
<TR align="center" bgcolor="#fbfbfb" onDblClick="clip('124.217.198.4:8080');alert('已拷贝到剪贴板!')" onMouseOver="this.style.backgroundColor='#E1E8E8';return true;" onMouseOut="this.style.backgroundColor='#fbfbfb';"><TD class="list">2</TD><TD class="list"><SCRIPT LANGUAGE="JavaScript">
<!--
document.write("124.");
document.write("217.");
document.write("198.");
document.write("4");
//--></SCRIPT>

以上是需要分析的 html 提取

我要提取的就是以上为 红色的部分。。
我写了个 pattern ,,但是不对。。
希望帮忙看看
Pattern p = Pattern.compile("onDblClick=\"clip\\(\\'\\d{1,3}\\.{1}\\d{1,3}\\.{1}\\d{1,3}\\.{1}\\d{1,3}:\\d{1,5}\\'\\)");
Matcher m = p.matcher(html);

------解决方案--------------------
问一下,上面那一大段 HTML 是一个字符串,还是一行一个字符串(readLine() 的情况)?

下面假定是一个字符串

Java code
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.bao.util.io.FileUtil;

public class Test {
    
    public static void main(String[] args) throws IOException {
        String str = FileUtil.readFileToString("d:/wy.txt");
        String regex = "(?i)onDblClick\\s*=\\s*\"clip\\('(\\d{1,3}(?:\\.\\d{1,3}){3}:\\d{1,5})";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        while(matcher.find()) {
            System.out.println(matcher.group(1));
        }
    }
}