急求一正则表达式匹配
<a href="http://***.***.***/***/" onclick="co('**')" class="lr">***</a>
除了<a和</a>外其他字符可以任意匹配!
在线等待,求高手指点……

解决方案 »

  1.   

        public class Test{
        public static void main(String[] args) {
    String regex = "^<a(.*)</a>$";   
    String source = "<a href=\"http://***.***.***/***/\" onclick=\"co('**')\" class=\"lr\">***</a>";
    Matcher matcher = Pattern.compile(regex).matcher(source);
    while (matcher.find()) {
        System.out.println(matcher.group(1));
    }
        }
        }
    /*output:
    href="http://***.***.***/***/" onclick="co('**')" class="lr">***
    */
      

  2.   

    我的source文件是从文件中读取的,双引号并没用转译。所以悲剧了。还没用匹配不到!
      

  3.   

    只要你文件里有那句代码,这个表达式还是行的,你试试下面的程序:import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;import javax.swing.JFileChooser;
    import javax.swing.JOptionPane;public class Test {
        public static void main(String[] args) {
    String regex = "^<a(.*)</a>$";//      
        //String source = "<a href=\"http://***.***.***/***/\" onclick=\"co('**')\" class=\"lr\">***</a>";
    String source = fileToString();//将字符串改为这个方法就可以了,然后启动并读取它
    Matcher matcher = Pattern.compile(regex,Pattern.DOTALL).matcher(source);//此时将他改为单行模式
        while (matcher.find()) {
            System.out.println(matcher.group(1));
        }
        
        }
        
        public static String fileToString() {
    StringBuilder sb = new StringBuilder();
    JFileChooser jFileChooser = new JFileChooser();
    javax.swing.filechooser.FileFilter fileFilter = new javax.swing.filechooser.FileFilter() {
        public boolean accept(File file) {
    if (file.isDirectory())
        return true;
    String fileName = file.getName();
    if (fileName.toUpperCase().endsWith("TXT"))
        return true;
    return false;
        }     public String getDescription() {
    return "读取文本文件";
        }
    };
    // 建立一个过滤文件类型的过滤器(对话框中正确显示文件),是否启用过滤器决定于下面两句话
    // jFileChooser.addChoosableFileFilter(fileFilter);
    // jFileChooser.setFileFilter(fileFilter);
    int returnValue = jFileChooser.showOpenDialog(null);
    if (returnValue == JFileChooser.APPROVE_OPTION) {
        File file = jFileChooser.getSelectedFile();
        if (!file.exists()) {
    prompt("文件不存在");
    return null;
        }
        // 检查文件名是否符合要求,这一步暂时省略......................................
        BufferedReader br = null;
        try {
    br = new BufferedReader(new FileReader(file)); String string;
    while ((string = br.readLine()) != null) {
        sb.append(string);
        sb.append("\r\n");
    }
        } catch (IOException e) {
    throw new RuntimeException(e);
        } finally {
    if (br != null)
        try {
    br.close();
        } catch (IOException e) {
    throw new RuntimeException(e);
        }
        }
    }
    return sb.toString();
        }    public static boolean isAgree(String hint) {
    int returnValue = javax.swing.JOptionPane.showConfirmDialog(null, hint);
    if (returnValue == javax.swing.JOptionPane.YES_OPTION)
        return true;
    else
        return false;
        }    public static int prompt(String promptMessage) {
    return JOptionPane.showConfirmDialog(null, promptMessage, "友情提示",
    JOptionPane.WARNING_MESSAGE);
        }
        // ///////////////////////////////////////////////////////////////////////////////////////////////////////}
      

  4.   

    ^<a(.*)</a>$
    这个正则 有问题o
    应该是^<a(.*?)</a>$ 
    非贪婪模式才对哦