想提取以下文本div内的文本
<div id="tree_001" style='display:none;'>....</div>
<div id="tree_002" style='display:none;'>....</div>
....
写了如下代码,却打印不出数据,不知为何 Pattern pattern = Pattern.compile("(<div id='tree_)(.+?)(</div>)");
Matcher matcher = pattern.matcher(source);
while (matcher.find()) {
System.out.println(matcher.group(2));
}
<div id="tree_001" style='display:none;'>....</div>
<div id="tree_002" style='display:none;'>....</div>
....
写了如下代码,却打印不出数据,不知为何 Pattern pattern = Pattern.compile("(<div id='tree_)(.+?)(</div>)");
Matcher matcher = pattern.matcher(source);
while (matcher.find()) {
System.out.println(matcher.group(2));
}
应为("(<div id='tree_)(.+?)( </div>)");
while (matcher.find()) {
System.out.println(matcher.group(1));
改成Pattern pattern = Pattern.compile("( <div id=\"tree_)(.+?)( </div>)"); 可以取得,不过结果可能不是你要的,建议正则改为(<div id=\"tree_.+>)(.+?)( </div>)
+ "<div id=\"tree_002\" style='display:none;'>.... </div> ";
Pattern pattern = Pattern.compile("<div id=.tree_.+?</div>");
Matcher matcher = pattern.matcher(source);
while (matcher.find()) {
System.out.println(matcher.group());
}
+ "<div id=\"tree_002\" style='display:none;'>DIV内容2</div> ";
Pattern pattern = Pattern.compile("<div.+?id=.*?tree_.+?>(.*?)</div>");
Matcher matcher = pattern.matcher(source);
while (matcher.find()) {
System.out.println(matcher.group(1));如果是任意ID的话,2楼的即可
我的源字符串<div id="tree_XXX" style='display:none;'></div>之间有很多嵌套table,难道是这影响了?按道理不会啊,或者是里面有空字符串的问题?
String source = "<div id=\"tree_001\" style='display:none;'>fdsf</div>-<div id=\"tree_002\" style='display:none;'>sfsf</div>";
System.out.println(source);
System.out.println("________________");
Pattern pattern=Pattern.compile("(<div id=\"tree.+?)(.+?)(</div>)");
Matcher m=pattern.matcher(source);
while(m.find()){
System.out.println(m.group());
}
Pattern pattern = Pattern.compile("<div.+?id=.*?tree_.+?>(.*)</div>");
Matcher matcher = pattern.matcher(source);
while (matcher.find()) {
System.out.println(matcher.group(1));如果里面没有嵌套div的话,输出的时候是System.out.println(matcher.group(1));因为是捕获第一个括号里的,楼主看看是不是不小心漏掉了
不知道为何提取不出数据来<div id="tree_1104" style='display:none;'>
<table width="666" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-top:10px;">
<tr>
<td>
<TABLE>
<tr>
<td align="center"><span class="menu_blue">
<input type="radio" name="seg1" value="radiobutton"
onClick="choice_tree('1/1/tree1104/Y/10//注释');showUI('1104','注释')" )/></span>
</td>
</tr>
<tr>
<td height="25" align="center" class="menu_blue">tree</td>
</tr>
<tr>
<td height="25" align="center"><span style="font-size:14px;color:#000000; font-weight:bold; font-family:'宋体'";></span></td>
</tr>
</TABLE>
</td>
<td>
<TABLE>
<tr>
<td align="center"><span class="menu_blue">
<input type="radio" name="seg1" value="radiobutton"
onClick="choice_tree('1/1/tree1104/B/10//注释');showUI('1104','注释')" )/></span>
</td>
</tr>
<tr>
<td height="25" align="center" class="menu_blue">tree</td>
</tr>
<tr>
<td height="25" align="center"><span style="font-size:14px;color:#000000; font-weight:bold; font-family:'宋体'";></span></td>
</tr>
</TABLE>
</td>
<td>
<TABLE>
<tr>
<td align="center"><span class="menu_blue">
<input type="radio" name="seg1" value="radiobutton"
onClick="choice_tree('1/1/tree1104/H/10//注释');showUI('1104','注释')" )/></span>
</td>
</tr>
<tr>
<td height="25" align="center" class="menu_blue">tree</td>
</tr>
<tr>
<td height="25" align="center"><span style="font-size:14px;color:#000000; font-weight:bold; font-family:'宋体'";></span></td>
</tr>
</TABLE>
</td>
</tr>
</table>
</div>