急求一正则表达式匹配
<a href="http://***.***.***/***/" onclick="co('**')" class="lr">***</a>
除了<a和</a>外其他字符可以任意匹配!
在线等待,求高手指点……
<a href="http://***.***.***/***/" onclick="co('**')" class="lr">***</a>
除了<a和</a>外其他字符可以任意匹配!
在线等待,求高手指点……
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">***
*/
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);
}
// ///////////////////////////////////////////////////////////////////////////////////////////////////////}
这个正则 有问题o
应该是^<a(.*?)</a>$
非贪婪模式才对哦