现在有一文本:<script language="javascript">
等待导航栏加载完成
function waitNavigation(){
}
</script>
<tr class="tableTitleRight2" >ª</tr>
<td class="tableTitleRight2" > </td>
<option value="<%=ProductParameters.DELAY_UNIT_NOW%>" >立即</option>
<title>基本信息修改</title>
我现在想匹配所有的标签内容(除了script标签以外)我想要的匹配结果应该是:ª
 
立即
基本信息修改
但是我用表达式 >[^<|^>]*</结果是:等待导航栏加载完成
function waitNavigation(){
}
ª
 
立即
基本信息修改大家有什么办法?
等待导航栏加载完成
function waitNavigation(){
}
</script>
<tr class="tableTitleRight2" >ª</tr>
<td class="tableTitleRight2" > </td>
<option value="<%=ProductParameters.DELAY_UNIT_NOW%>" >立即</option>
<title>基本信息修改</title>
我现在想匹配所有的标签内容(除了script标签以外)我想要的匹配结果应该是:ª
 
立即
基本信息修改
但是我用表达式 >[^<|^>]*</结果是:等待导航栏加载完成
function waitNavigation(){
}
ª
 
立即
基本信息修改大家有什么办法?
import java.util.regex.Pattern;public class Test {
public static void main(String[] args) {
String str =
"<script language=\"javascript\">\n" +
"等待导航栏加载完成\n" +
"function waitNavigation(){\n" +
"}\n" +
"</script>\n" +
"<tr class=\"tableTitleRight2\" >ª</tr>\n" +
"<td class=\"tableTitleRight2\" > </td>\n" +
"<option value=\"<%=ProductParameters.DELAY_UNIT_NOW%>\">立即</option>\n" +
"<title>基本信息修改</title>";
Pattern pattern = Pattern.compile("(?is)<(script).*?/\\s*\\1>|>([^<>]*)</");
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
if(matcher.start(2) > -1) {
System.out.println(matcher.group(2));
}
}
}
}
比如
String str =
"<!-- 页面级js -->\n" +
"<script language=\"javascript\">\n" +
"等待导航栏加载完成\n" +
"function waitNavigation(){\n" +
"}\n" +
"</script>\n" +
"<tr class=\"tableTitleRight2\" >ª</tr>\n" +
"<td class=\"tableTitleRight2\" > </td>\n" +
"<option value=\"<%=ProductParameters.DELAY_UNIT_NOW%>\">立即</option>\n" +
"<title>基本信息修改</title>";
public static void main(String[] args) {
String s="<tr class=\"tableTitleRight2\" >ª </tr> ";
s=s.replaceAll("&#\\d{3};","");
System.out.println(s);
}
}