Laden...

[Gelöst] Sonderzeichen ersetzen

Erstellt von The_Mexican vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.307 Views
The_Mexican Themenstarter:in
87 Beiträge seit 2009
vor 13 Jahren
[Gelöst] Sonderzeichen ersetzen

Hi @all,

ich bin auf der Suche nach einer Methode die Sonderzeichen in einem String ersetzt.

PROBLEM: Die Sonderzeichen möchte ich nicht selbst bestimmen bzw. im Code angeben, sondern auf eine bereits von MS definierte Char-Menge zurückgreifen.

das ganze könnte in etwa so aussehen:

string x = String.Replace(strInput, MengeDefinierterSonderzeichenMicrosoft, "zu ersetzen durch");

UND NICHT SO

string x = String.Replace(strInput, Char[ [!"§$$%&&//(/)] ], "zu ersetzen durch");

weiß jemand ob das geht?

mfg
mex

que? como? no entiendo!!!!!

Gelöschter Account
vor 13 Jahren

dann mach doch:

char[] MengeDefinierterSonderzeichenMicrosoft = Char[ [!"§$$%&&//(/)] ] //pseudocode
string x = String.Replace(strInput, MengeDefinierterSonderzeichenMicrosoft, "zu ersetzen durch");

ich verstehe dein anliegen nicht so richtig. wenn du weißt woher du die zeichen bekommst, kannst du auch die replace methode damit versorgen...

The_Mexican Themenstarter:in
87 Beiträge seit 2009
vor 13 Jahren

Hi,

zuerst danke für die antwort und hier mein problem:

Char[ [!"§$$%&&//(/)] ] //pseudocode

genau diese pasage aus deinem kommentar ist mir nicht klar. ich möchte die zeichen nicht selbst definieren, sondern sie irgendwo her nehmen z.b.

char[] MengeDefinierterSonderzeichenMicrosoft = "Nimm alle Zeichen der von microsoft definierten Menge)

ist dass vertsändlicher?

greets
mex

que? como? no entiendo!!!!!

The_Mexican Themenstarter:in
87 Beiträge seit 2009
vor 13 Jahren

was ist wenn ein text einen zeilenumbruch enthält, oder inen tap-stop?

que? como? no entiendo!!!!!

Gelöschter Account
vor 13 Jahren

und du hast nachwievor nicht erklärt was du hiermit meinst:

Nimm alle Zeichen der von microsoft definierten Menge

1.433 Beiträge seit 2006
vor 13 Jahren

Nimm alle Zeichen der von microsoft definierten Menge Die Definition ist doch immer Sache vom Integrator.

Microsoft macht ja nur default Vorschläge z. Bsp. bei einem Validator-Control in welchem bereits vordefinierte Filter für E-Mail Adressen sind. Meinst Du sowas in der Art?

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

The_Mexican Themenstarter:in
87 Beiträge seit 2009
vor 13 Jahren

Menge manuell definieren: [$%&/]

Menge "alle Zeichen der von Microsoft definierten Menge": in der msdn vorhandene Methode die alle Zeichen zurückgibt, die Microsoft als Sonderzeichen einstuft.

--> @schaedld - so in etwa, ein vorschlag einer menge an sonderzeichen aus dem hause mircosoft.

jetzt erklärt? ich weiß gerade nicht wie ich es anderst verständlicher machen kann :S sry !!!

que? como? no entiendo!!!!!

199 Beiträge seit 2006
vor 13 Jahren

Was verstehst du unter Sonderzeichen?
Per Regex hat man die Möglichkeit zum Beispiel darauf einzuschränken, dass nur Buchstaben ( [A-Z][a-z] ) und nur Zahlen ( [0-9] ) erlaubt sind. Damit sind alle Sonderzeichen und Whitespaces draussen.

The_Mexican Themenstarter:in
87 Beiträge seit 2009
vor 13 Jahren

@ Mossi

bedeutet dass, das auch tabstop und zeilenumbrüche rausgenommen werden?

dann ist es mit regex möglich zu sagen, der text darf nur Buchstaben, Zahlen und Whitspaces (Leerzeichen) enthalten, richtig?

que? como? no entiendo!!!!!

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo The_Mexican,

du hast irgendwo eine Array von Zeichen, gell? Daraus kannst du doch sehr einfach einen String machen. Jetzt musst du dich nur noch um die Besonderheiten von Regex kümmern. Am einfachsten wird es sein, wenn du vor jedes Zeichen in dem String, das keiner der 26 Buchstaben ist, einen Backslash schreibst. Leerzeichen und Tabs sollten sollten nicht stören. Wenn sie dich stören, schmeiß sie raus. Anschließend noch [ ] vor und hinter den String zu setzen, sollte auch nicht die Klippe sein.

herbivore

The_Mexican Themenstarter:in
87 Beiträge seit 2009
vor 13 Jahren

also wenn ich es richtig verstanden habe:

ich habe einen string x der enthält zahlen, buchstaben, tapstop, zeilenumbruch, ....

definiere ich jetzt für regex ein muster (pattern) patX:

*[^0-9][^A-Z][^a-z]

und verwende

RegEx rgx = new RegEx(patX)

rgx.Replace(strX, "")

dann würde ich einen stringX erhalten der folgenden inhalt hat:
zahl buchstabebuchstabebuchstabe zahlBUCHSTABEbuchstabe zahl

ist das so richtig verstanden worden von mir?

greets
mex

-> danke für die hilfe bereits an dieser stelle 😉

que? como? no entiendo!!!!!

199 Beiträge seit 2006
vor 13 Jahren

Vielleicht ist Regex-Lab für dich interessant. Damit kannst du die Muster recht schön ausprobieren. In deinem Fall bin ich mir nicht sicher, ob Leerzeichen da jetzt erlaubt sind oder nicht. Aber das kannst du damit ja schön ausprobieren

The_Mexican Themenstarter:in
87 Beiträge seit 2009
vor 13 Jahren

danke für die info, werd ich mir anschauen und danke nochmal für eure hilfe

ich habe hier noch einen interessanten link bzgl whitespace ersetzten:

Replace Whitespace

hier der codeauszug für die zeichenfolge <1 leerzeichen:

// Create a regular expression that matches a series of one 
// or more white spaces.
    string pattern = @"\s+";

\s+ --> >1 leerzeichen

und hier ein link der mir pers. geholfen hat die regex-geschichte schneller zu verstehen:

Example how to use pattern with regex

danke und noch einen schönen tag 😉

greets
mex

Nachtrag:

hier das pattern für mein problem:


// define pattern
string patternAlphanummeric = @"[^a-zA-Z0-9]";
Regex rex = new Regex(patternAlphanummeric);

// execute 
string input = ".....";
string editByRegEx = rex.Replace(input, " ");

que? como? no entiendo!!!!!