从字符串中删除特殊符号



我在这个Java代码中使用Stardog:

Connection aConn = ConnectionConfiguration
.to("")
.server("http://localhost:5820")
.database("TP_OntologiasEjecutado")
.credentials("admin", "admin")
.connect()
.as(Connection.class);
SelectQuery selectQuery = aConn.select(
"SELECT DISTINCT ?Libreta ?Puntaje n"+
"WHERE{ n"+
"?Alumno a :PostulanteABecaAdmisible. n"+
"?Alumno :cantidadMateriasAprobadasCicloLectivoAnterior ?matAnterior. n"+
"?Alumno :promedioAlumno ?Promedio. n"+
"?Alumno :numeroLegajo ?Libreta. n"+
"?Alumno :medicionFinal ?Puntaje. n"+
"?Alumno :seInscribeAConvocatoria ?conv. n"+
"?conv :anioConvocatoria ?anioConv. n"+
"FILTER (?anioConv = "+anio+"). n"+
"FILTER (?Promedio >= "+promedio+"). n"+
"FILTER (?matAnterior >= "+materias+"). n"+
"} n"+
"ORDER BY DESC (?Puntaje)"
);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
SelectQueryResult selectQueryResult = selectQuery.execute();
try{
QueryResultWriters.write(selectQueryResult, stream, HTMLQueryResultWriter.FORMAT);
} catch (IOException e) {
System.out.println("ERROR");
}

这生成了HTML代码,我在JPanel的JLabel中显示了这些代码,这是我得到的代码示例:HTML代码和结果

这是在Notepad++中打开HTML:

<html>
<head><meta content="text/html;charset=UTF-8"/></head>
<body>
<table border=1>
<tr>
<th>Libreta</th>
<th>Puntaje</th>
</tr>
<tr>
<td style="text-align:left;vertical-align:top">23806</td>
<td style="text-align:left;vertical-align:top">&quot;67.75&quot;^^&lt;http://www.w3.org/2001/XMLSchema#float&gt;</td>
</tr>
<tr>
<td style="text-align:left;vertical-align:top">123456</td>
<td style="text-align:left;vertical-align:top">&quot;66.6&quot;^^&lt;http://www.w3.org/2001/XMLSchema#float&gt;</td>
</tr>
</table>
</body>
所以我需要的是删除^^<http://www.w3.org/2001/XMLSchema#float>。我可以删除URL:
String finalString = new String(stream.toByteArray()).replaceAll("http://www.w3.org/2001/XMLSchema#float","");

但我无法删除^^<gt;部分原因是他们是特殊的人物。如何移除它们?

问题是,如果您在正则表达式中转义这些字符,例如

String finalString = new String(stream.toByteArray()).replaceAll("^^<http://www.w3.org/2001/XMLSchema#float>","");

您正在创建的字符串中对它们进行转义。如果这甚至没有错误,您的正则表达式字符串仍然是

"^^<http://www.w3.org/2001/XMLSchema#float>"

因此,您需要对反斜杠进行转义,将它们转换为下面的单个反斜杠,并确保它们在需要转义特殊正则表达式字符时仍然存在:

String finalString = new String(stream.toByteArray()).replaceAll("\^\^<http://www.w3.org/2001/XMLSchema#float>","");

相关内容

  • 没有找到相关文章

最新更新