急求一正则表达式匹配
<a href="http://***.***.***/***/" onclick="co('**')" class="lr">***</a>
除了<a和</a>外其他字符可以任意匹配!
在线等待,求高手指点……
------解决方案--------------------
- Java code
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">****/
------解决方案--------------------
"^<a(.*?)</a>
------解决方案--------------------
只要你文件里有那句代码,这个表达式还是行的,你试试下面的程序:
- Java code
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); } // ///////////////////////////////////////////////////////////////////////////////////////////////////////}