2010-09-14 14 views
10

contenuti èCome sostituire   nello spazio?

    Hello World. 

<a&nbsp;href="#"&nbsp;target=_blank>hello&nbsp;World</a> 

Come sostituire il &nbsp; nel codice html e tenere l'altra &nbsp; nel testo.

+7

Se possibile, si dovrebbe cercare di evitare di ottenere il ' ' nel codice html nel primo posto. – Heinzi

+0

Sì, come sei arrivato comunque in questa situazione? Mostraci quel codice – Steven

+0

Quale programma stai usando per creare quel markup? –

risposta

4

Puoi provare a cercare

(?<=<[^>]*)&nbsp; 

e la sua sostituzione con un unico spazio?

Questo cerca i tag interni &nbsp; (preceduti da un < ed eventualmente altri caratteri eccetto >).

Questo è estremamente fragile, però. Ad esempio, non funzionerà se si dispone dei simboli </> in stringhe/attributi. È meglio evitare di portare quegli &nbsp; nelle posizioni sbagliate in primo luogo.

+1

RegEx per sostituzione semplice? Sembra che provi a sparare con una sola mosca con una bomba nucleare :) – Andrey

+4

@Andrey: Non è una semplice sostituzione. Potresti voler leggere di nuovo l'ultima riga della domanda. ;-) – Heinzi

+0

Grazie. Funziona OK. – AlphaWu

4

E 'semplice

youString.Replace("&nbsp;", " "); 

classe String http://msdn.microsoft.com/en-us/library/system.string.aspx

Sostituire metodo http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx

+2

Penso che questo non risolva il "mantenere l'altro   nel testo". parte ... – Heinzi

+0

d'accordo, in questo caso dovrebbe usare regex. – Andrey

+0

Sebbene questo possa teoricamente rispondere alla domanda, [sarebbe preferibile] (// meta.stackoverflow.com/q/8259) per includere qui le parti essenziali della risposta e fornire il link per riferimento. –

0

Questo ti troverà tutte quelle strisce di testo contenente & nbsp:

<[^>]+?&nbsp;[^<]+?> 

Fropm qui puoi semplicemente sostituire una stringa semplice con lo spazio poiché Regex ti darà il risultato della corrispondenza nel testo.

9

Per me il migliore è:

Imports System.Web 
HttpUtility.HtmlDecode(codeHtml) 
+4

Quando si esce da una risposta, è importante provare a fare 2 cose .... assicurarsi che la risposta risponda alla domanda come chiesto e spiegare perché la soluzione risolve il problema. Questo è importante perché non tutti coloro che leggono questa domanda saranno esperti e non saranno in grado di vedere come la soluzione risolve il problema. Valuta la tua risposta per cercare di spiegare come risolve il problema. – psubsee2003

+2

Questa è in realtà la migliore risposta qui, anche se male spiegata. Vedere la documentazione MSDN per ciò che effettivamente fa HtmlDecode. – Dylan

1
string A = HttpContext.Current.Server.HtmlDecode(Text); 

string A = Text.Replace("&nbsp"," "); 

string A = Text.Replace("&amp;nbsp;", " "); 

          ↑ &amp;nbsp; 
0

basta sostituire & nbsp per string.Empty dopo il testo come qui di seguito ..

xyz.Text.Replace("&nbsp;", string.Empty);