主要用于取 html的某些元素的文字.
如:
<td ...><a...>aaa</a></td> 返回 aaa
<td><label ...>bbb</label></td> 返回 bbb这些字符串的相同点都是要取 ">""<" 之间的字符,不知有没有方法可以很快把aaa及bbb取出来?
如:
<td ...><a...>aaa</a></td> 返回 aaa
<td><label ...>bbb</label></td> 返回 bbb这些字符串的相同点都是要取 ">""<" 之间的字符,不知有没有方法可以很快把aaa及bbb取出来?
http://www.10zhizui.cn
public static void main(String []args){
String str="<td> <label ...> bbb </label> </td>";
getABC(str);
}
public static void getABC(String str){
for(int i=0;i<str.length();i++){
if(str.charAt(i)>65&&str.charAt(i)<122)
System.out.print(str.charAt(i));
}
}
}
//看看这个方法行不?
str=str.replaceAll(">", "");
str=str.replaceAll("/", "");
System.out.print(str);
}刚看有个正则替换,照猫画虎-_-!
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class TimeZone { public static void main(String[] args) {
String str1 = "<td ...><a...>aaa</a></td><td>";
String str2 = "<label ...>bbb</label></td>";
System.out.println(str1);
List<String> list1 = getString(str1);
for(int i = 0, k = list1.size(); i < k; i++) {
System.out.println(list1.get(i));
}
System.out.println(str2);
List<String> list2 = getString(str2);
for(int i = 0, k = list1.size(); i < k; i++) {
System.out.println(list2.get(i));
}
}
public static List<String> getString(String str) {
List<String> list = new ArrayList<String>();
Pattern pattern = Pattern.compile("\\>([^\\>^\\s.]+)\\<");
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
list.add(matcher.group(1));
}
return list;
}
}
Pattern pt = Pattern
.compile(".*>([a-zA-Z0-9 ]{2,})<.*");
Matcher mc = pt.matcher(
"<td ...> <a...> aaa </a> </td>");
if(mc.matches()){
System.out.println(mc
.group(1));
}
表示式应根据具体需求再变动
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test {
public static void main(String[] arg) {
Pattern p = Pattern.compile("<(\\w+).*>(\\s*\\w+\\s*)(<\\/\\1>)");
//Matcher m = p.matcher("<td ...> <a...> aaa </a> </td>");
Matcher m = p.matcher("<td> <label ...> bbb </label> </td>");
while (m.find()) {
System.out.println(m.group(2));
}
}
}/*
bbb
*/
import java.util.regex.Pattern;public class test {
public static void main(String[] arg) {
//pattern
Pattern p = Pattern.compile("(<\\w+>)(\\s*\\w+\\s*)(<\\/\\w+>)");
//matcher
Matcher m = p.matcher("<td> <label> bbb </label> </td>");
//find
while (m.find()) {
//<\\w+>
System.out.println(m.group(1));
//\\s*\\w+\\s*
System.out.println(m.group(2));
//<\\/\\w+>
System.out.println(m.group(3));
}
}
}
推荐下httpunit,这些都是小case