Domanda

Come sostituire i caratteri speciali utilizzando le espressioni regolari? In particolare, quello che voglio dire è quei personaggi simbolici che appaiono a volte nel testo.

Per esempio, nel testo qui sotto, voglio rimuovere la cupola, che si trova all'inizio di ogni riga.

Passaporto Dettagli

Name as on passport
Relationship
Passport Number
Date of Issue
Expiry Date
Place of Issue

Domanda modificato: Siamo spiacenti, la bolla all'inizio della linea non è più visible.After domanda presentando, StackOverflow rimosso quel carattere speciale

.

Qualcuno sa come sostituire quei caratteri speciali? Non voglio sostituire i caratteri come #, @ o!. Questi sono banali e possono essere digitati con la tastiera.

Siamo spiacenti, non so come mettere quei caratteri speciali nella mia question.I cercherà di spiegare. Nel file word, mettiamo proiettili prima del testo. Voglio sostituire caratteri reprenting tali caratteri. Ho alcuni file di testo che contengono caratteri che assomigliano a bolle.

Infine, ho trovato la soluzione. Questa espressione regolare funziona per me

([^ (A-Za-z0-9) + | \ r | \ n | \ t | '| "| # |, |:. | / | \ | |, |])

È stato utile?

Soluzione

Non ho abbastanza tempo per rimpolpare un esempio completo. Ma dal momento che si sta utilizzando .NET è possibile abbinare su qualsiasi numero di queste classi di caratteri:

http://msdn.microsoft.com/en-us/library /20bw873z.aspx

Scegliere ciò che si desidera accettare e sostituire tutto ciò che non è uguale a quello impostato.

Altri suggerimenti

(Questo è stato inviato prima era stata specificata la lingua.)

Per sostituire i caratteri non ASCII con uno spazio in Perl,

 $string =~ s/[^[:ascii:]]/ /g;

http://codepad.org/KTMvQiOz . Qui il [^[:ascii:]] è una regex che corrisponde a qualsiasi carattere non-ASCII.

Sarebbe possibile trovare tutti i caratteri "speciali" con questa espressione regolare e poi semplicemente sostituirli con un carattere di spazio:

/[<special_characters_here>]/

Tuttavia, di solito è meglio usare whitelist, menzionando in tal modo tutti i caratteri consentiti e la sostituzione tutto ciò che non è loro un carattere di spazio:

/[^<allowed_characters_here>]/

Vuoi dire sostituendo i caratteri di ritorno a capo e nuova linea?

Se questo è quello che stai dopo, questo lo farebbe:

var source = "once\r\ntwice\r\nthrice";
var pattern = new Regex(@"\r\n");
var result = pattern.Replace(source, ",");
Assert.AreEqual("once,twice,thrice", result);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top