比如有下面一段代码:
<a href="11"><font color="21">aaa</font></a>
<a href="12"><font color="22">bbb</font></a>
<a href="13">ccc</a>
<a href="14"><font color="24">ddd</font></a>
<a href="15"><font color="25">eee</font></a>
<a href="16">fff</a>上面的代码意思是<font color="***">和</font>不一定有,而且color的值也可能不一样
我现在想得到
aaa
bbb
ccc
ddd
eee
fff这个正则表达式该怎么写?谢谢
<a href="11"><font color="21">aaa</font></a>
<a href="12"><font color="22">bbb</font></a>
<a href="13">ccc</a>
<a href="14"><font color="24">ddd</font></a>
<a href="15"><font color="25">eee</font></a>
<a href="16">fff</a>上面的代码意思是<font color="***">和</font>不一定有,而且color的值也可能不一样
我现在想得到
aaa
bbb
ccc
ddd
eee
fff这个正则表达式该怎么写?谢谢
public static void main(String args[]) {
String str="<a href='13'>ccc </a> ";
Pattern p=Pattern.compile(">([\\w ]+)<");
Matcher m=p.matcher(str);
while(m.find())
System.out.print(m.group(1));
}
至于你那个aaa bbb ccc我想实际上应该是一个字符串吧 你自己改吧 把">([\\w ]+)<"括号里的表达式按需要改吧 然后m.group(1)就是你要的 应该可以的 而且后面还一个空格 倒
/**
* kimi
*/package test;import java.util.regex.Matcher;
import java.util.regex.Pattern;/**
* @author kimi
*
*/
public class TestCsdn { /*
* <a href="11"> <font color="21">aaa </font> </a> <a href="12"> <font color="22">bbb </font> </a> <a href="13">ccc
* </a> <a href="14"> <font color="24">ddd </font> </a> <a href="15"> <font color="25">eee </font> </a> <a
* href="16">fff </a>
*
*/
/**
* @param args
*/
public static void main(String[] args) {
String s1 = "<a href=\"11\"> <font color=\"21\">aaa </font> </a>\n"
+ "<a href=\"12\"> <font color=\"22\">bbb </font> </a>\n" + "<a href=\"13\">ccc </a>";
String s = "(<a href=\"\\d{2}\">(<font color=\"\\d{2}\">(.*?)</font>)?|(.*?)</a>[\n\r]?)+";
Pattern p = Pattern.compile(s);
Matcher m = p.matcher(s1);
if (m.matches()) {
System.out.println("ok");
}
}
}
初学EL,请多多关照!
import java.util.regex.*;
public class Test6
{
public static void main(String[] args)
{
String s="<a href=\"11\"> <font color=\"21\">aaa </font> </a> "
+"<a href=\"12\"> <font color=\"22\">bbb </font> </a> "
+"<a href=\"13\">ccc </a> "
+"<a href=\"14\"> <font color=\"23\">ddd </font> </a>"
+"<a href=\"15\"> <font color=\"25\">eee </font> </a> "
+"<a href=\"16\">fff </a> ";
String regex="<a.*?>(.*?)</a>";
Pattern pt=Pattern.compile(regex);
Matcher mt=pt.matcher(s);
while(mt.find())
{
System.out.println(mt.group(1).replaceAll("<font.*?>|</font>", "").trim());
}
}
}
能不能一个正则表达式搞定不用后边的replaceAll阿
import java.util.Matcher;public class Test {
public static void main(String[] args) {
String str = "<a href=\"11\"> <font color=\"21\">aaa </font> </a>" +
"<a href=\"12\"> <font color=\"22\">bbb </font> </a>" +
"<a href=\"13\">ccc </a> " +
"<a href=\"14\"> <font color=\"23\">ddd </font> </a>" +
"<a href=\"15\"> <font color=\"25\">eee </font> </a> " +
"<a href=\"16\">fff </a> ";
String regex = "<a[^>]*>(?:\\s*<font[^>]*>)?(.*?)(?:</font>\\s*)?</a>";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
System.out.println(matcher.group(1));
}
}
}