2012-04-12 11 views
3

Hallo Ich versuche, eine Möglichkeit zum Entfernen der Tags aus den Ergebnissen von der Google Feed API heraus zu finden. Insbesondere platzieren sie fettgedruckte Tags auf Titeln und in der Beschreibung.Schnellste Möglichkeit zum Entfernen von Unicode-Codes aus einer Zeichenfolge

die Codes, die eingesetzt werden, sind wie folgt:

\u003cb 
\u003e 
\u003c/b\u003e 

Seit der einen festen Betrag, den ich versuchen, eine String.Replace tun haben() für jeden dieser Codes pro String aber in schlechten Leistung führte nicht überraschenderweise. Ich bin mir nicht sicher, ob RegEx besser (oder schlechter) wäre. Hat jemand eine Idee, wie man diese entfernt? Google bietet keine Option zum Entfernen von Tags aus den Ergebnissen.

Antwort

2

Sie könnten die Unicode-Codes mit einem regulären Ausdruck wie folgt entfernen ein:

\\u[\d\w]{4} 

var subject = @"\u003cb\u003e\u003c/b\u003e"; 
var result = Regex.Replace(subject, @"\\u[\d\w]{4}", String.Empty); 

Was die Leistung scheint this article dass regex vorschlagen ist viel langsamer, aber ich würde Ihre eigenen Tests mit Ihren eigenen Daten laufen als es könnte wild anders sein. Der reguläre Ausdruck selbst wird eine große Rolle in der Leistung spielen und ich denke nicht, dass dieser Artikel angibt, was die Regex verwendet, so dass es unmöglich ist, sie zu vergleichen. Die Größe und der Typ Ihrer Daten spielen ebenfalls eine große Rolle. Daher ist es schwierig zu sagen, welches besser ist, ohne Ihre Daten zu verstehen.

Sie sollten auch compiling the regex mit der RegexOptions.Compiled Flagge versuchen, um zu sehen, ob das die Leistung steigert.

+0

Sorry, ich war nicht klar. Ich möchte die Tags überhaupt nicht haben. Ich war auf der Suche nach einer leistungsfreundlichen Art, sie zu entfernen. Das Gerät, auf das ich ausgerichtet bin, hat sie automatisch konvertiert. So habe ich herausgefunden, dass es sich um fettgedruckte Tags handelt. – loyalpenguin

+0

@loyalpenguin ich verstehe jetzt. Ich habe die Antwort für Sie aktualisiert (neu geschrieben). – Robbie

+0

Ausgezeichnete Antwort. Vielen Dank für Ihre Zeit. – loyalpenguin

Verwandte Themen