Frage

Wie Sonderzeichen mit regulären Ausdrücken ersetzen? Durch spezielle, was ich meine, ist diese symbolischen Zeichen, die manchmal in Text angezeigt werden.

Zum Beispiel in Text, mag ich die Blase entfernen, die zu Beginn jeder Zeile ist.

Pass Details

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

Frage bearbeitet: Sorry, die Blase zu Beginn der Linie ist nicht mehr visible.After einreichen Frage, dass Stackoverflow Sonderzeichen entfernt

.

Wer weiß, wie man diese Sonderzeichen ersetzen? Ich möchte nicht Zeichen ersetzen, wie #, @ oder!. Dies sind trivial und kann mit der Tastatur eingegeben werden.

Sorry, ich weiß nicht, wie diese Sonderzeichen in meinem question.I setzen versuchen, zu erklären. In Word-Datei, setzen wir Kugeln vor Text. Ich möchte Zeichen ersetzen reprenting solche Zeichen. Ich habe einige Textdateien, die Zeichen enthalten, die wie Blase aussehen.

Schließlich fand ich die Lösung aus. Dieser reguläre Ausdruck funktioniert für mich

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

War es hilfreich?

Lösung

Ich habe nicht genug Zeit, um ein vollständiges Beispiel zu konkretisieren. Aber da Sie .NET verwenden können Sie auf einer beliebigen Anzahl dieser Zeichenklassen entsprechen:

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

Wählen Sie, was Sie akzeptieren wollen und nichts zu ersetzen, die nicht gleich der Menge ist.

Andere Tipps

(Dies wurde geschrieben, bevor die Sprache angegeben worden war.)

Nicht-ASCII-Zeichen ersetzen mit einem Raum in Perl,

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

Siehe http://codepad.org/KTMvQiOz . Hier ist die [^[:ascii:]] ist ein regulärer Ausdruck, die passt zu jedem Nicht-ASCII-Zeichen.

Es wäre möglich, alle „speziellen“ Zeichen mit diesem regulären Ausdruck zu finden und dann ersetzen Sie sie einfach mit einem Leerzeichen:

/[<special_characters_here>]/

Allerdings, in der Regel ist es besser, weiße Listen zu verwenden, damit alle erlaubten Zeichen zu erwähnen und zu ersetzen alles, was sie nicht mit einem Leerzeichen ist:

/[^<allowed_characters_here>]/

Möchten Sie die Wagenrücklauf und Zeilenvorschubzeichen bedeuten ersetzen?

Wenn das, was Sie nach, dies würde es tun:

var source = "once\r\ntwice\r\nthrice";
var pattern = new Regex(@"\r\n");
var result = pattern.Replace(source, ",");
Assert.AreEqual("once,twice,thrice", result);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top