chablife Geschrieben 5. Oktober 2011 Geschrieben 5. Oktober 2011 Hallo, ich möchte in allen Strings alle Zeichen(komma, doppelpunkt usw.) durch nichts ersetzen. Ich könnte es mit der Replace-Funktion machen, aber für jedes einzelne Zeichen ein Replace wäre glaube ich viel zu umständlich. Dann habe ich im Internet noch diese Funktion gefunden s1= System.Text.RegularExpressions.Regex.Replace(s1, "[,!:']", "") Aber da muss ich ja auch jedes einzelne Zeichen selber eintragen. Das Problem ist, dass ich nicht alle Zeichen kenne die ich ersetzen möchte. Gibt es irgendeine Möglichkeit alle Zeichen einfach mit einem leeren String zu ersetzen oder zu löschen, oder sind diese beiden Möglichkeiten die Einzigen? Zitieren
Termi Geschrieben 5. Oktober 2011 Geschrieben 5. Oktober 2011 Gibt es irgendeine Möglichkeit alle Zeichen einfach mit einem leeren String zu ersetzen oder zu löschen Was meinst du damit? Am einfachsten würde es gehn mit Regulären ausdrücken wie du schon geschrieben hast. Was hast du denn ungefähr vor? Vielleicht hilft das ein bisschen E: Was für eine Programmiersprache benutzt du? Sieht irgendwie nach C# aus *g*. Lg Zitieren
chablife Geschrieben 5. Oktober 2011 Autor Geschrieben 5. Oktober 2011 (bearbeitet) Was meinst du damit? Am einfachsten würde es gehn mit Regulären ausdrücken wie du schon geschrieben hast. Was hast du denn ungefähr vor? Vielleicht hilft das ein bisschen E: Was für eine Programmiersprache benutzt du? Sieht irgendwie nach C# aus *g*. Lg In VB.Net ;D Ich möchte in einem bestehenden Programm alle Zeichen durch "nichts" ersetzen. Und die Umlaute Ä, Ö, Ü durch ae, oe, ue ersetzen. Das ist ja kein Problem, kann man in 3 Zeilen machen, aber mit den Zeichen wäre das glaube ich zu umfangreich. Das sind übrigens alles html-Zeichen, die ich ersetzen will SELFHTML: HTML/XHTML / Referenz /HTML-Zeichenreferenz Bearbeitet 5. Oktober 2011 von chablife Zitieren
Termi Geschrieben 5. Oktober 2011 Geschrieben 5. Oktober 2011 (bearbeitet) oO Ganz schön viel.. Ich würde es aber trotzdem mit Regulären Ausdrücken veruschen, mir fällt sonst keine andere Möglichkeit ein... sollte dann ungefähr so aussehen: SearchAnd = New Regex(); String regex = "["&<>¡¡¢£¤¥¦§¨©ª«¬*" + "®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖ×ØÙÚÛÜÃÞßà áâãäåæçèéêëìÃîïðñòóôõö÷øùúûüý"+ "þÿΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκΛλΜμΝνΞξΟοΠπΡρΣςσΤτ"+"ΥυΦφΧχΨψΩωϑϒϖ∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧"+ "∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅◊⌈⌉⌊⌋〈〉←↑→↓↔↵⇐⇑⇒⇓⇔•′″‾⁄℘ℑℜ™€ℵ♠♣♥♦ŒœŠšŸƒ"+ " **–—‘’‚“”„†‡…" +"‰‹›ˆ˜]"; SearchAnd.Replace(text, regex, "") Ich bin mir mit der Syntax nicht ganz sicher, da ich kein VB.net kann, aber du kannst es ja ggf. korrigieren^^ kannst es ja mal probieren.. Und sag dann mal obs klappt oder ob es in die richtige Richtung geht. E: wegen umlauten überleg ich mir nochmal kurz was und melde mich gleich nochmal E2: Mit den Umlauten wärs wahrscheinlich am einfachsten einfach das wie folgt zu machen:text = text.Replace("ä", "ae"); text = text.Replace("ö","oe"); text = text.Replace("ü","oe"); ... unschön, aber mir fällt sonst nichts ein grad Lg Bearbeitet 5. Oktober 2011 von Termi Zitieren
chablife Geschrieben 5. Oktober 2011 Autor Geschrieben 5. Oktober 2011 (bearbeitet) Das mit den Umlauten habe ich genauso wie du. Das klappt auch. Das darüber leider nicht :/ Hab einiges dran versucht aber funktioniert nicht. Entweder kann ichs nicht oder es funktioniert nicht. Trotzdem danke für die Mühe. Bearbeitet 5. Oktober 2011 von chablife Zitieren
Klotzkopp Geschrieben 5. Oktober 2011 Geschrieben 5. Oktober 2011 Kann auch nicht funktionieren, wenn man den Funktionsrückgabewert hintenüber fallen lässt: text = SearchAnd.Replace(text, regex, "") Zitieren
Termi Geschrieben 5. Oktober 2011 Geschrieben 5. Oktober 2011 Also am regulären ausdruck sollte es nicht liegen, der klappt das hab ich ausprobiert. Wie gesagt, die VB.net Syntax ist mir leider nicht geläufig... Du willst alle Zeichen (wie sie im regulären Ausdruck) mit "" ersetzen, seh ich das richtig? Ich geh davon aus das du die Klasse implementiert hast? Imports System.Text.RegularExpressions btw. ich hab gesehen das wenn du die Klasse implementiert hast bei VB.net KEIN neues Objekt erstellt werden muss, sorry dafür. Vielleicht funktioneirt ja das?: Dim ausdruck As String ausdruck = "["&<>¡¡¢£¤¥¦§¨©ª«¬*" + "®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÃÂÃÄÅÆÇÈÉÊËÌÃÃŽÃÃÑÒÓÔÕÖ×ØÙÚÛÜÃÞßà áâãäåæçèéêëìÃîïðñòóôõö÷øùúûüý"+ "þÿΑαΒβΓγΔδΕεΖζΗηΘθΙιΚκΛλΜμΝνΞξΟοΠπΡρΣςσΤτ"+"ΥυΦφΧχΨψΩωϑϒϖ∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧"+ "∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅◊⌈⌉⌊⌋〈〉←↑→↓↔↵⇐⇑⇒⇓⇔•′″‾⁄℘ℑℜ™€ℵ♠♣♥♦ŒœŠšŸƒ"+ " **–—‘’‚“”„†‡…" +"‰‹›ˆ˜]" text.RegEx.Replace(text, regex, "") Lg - ich dürck die Daumen das es jetzt funktioniert.. E: @Klotzkopp: woooops... hab das ja ganz übersehen hier im Editor ._. danke dir! Funktioniert das aber dann auch? Ich weiß nicht genau ob man in VB.net nen neues RegEx Objekt erstellen muss oder das normale nehmen kann. Zitieren
Klotzkopp Geschrieben 5. Oktober 2011 Geschrieben 5. Oktober 2011 Ich weiß nicht genau ob man in VB.net nen neues RegEx Objekt erstellen muss oder das normale nehmen kann.Regex.Replace(String, String, String) ist static ("Shared" in VB), daher braucht man keine Regex-Instanz: text = Regex.Replace(text, regex, "") Zitieren
chablife Geschrieben 5. Oktober 2011 Autor Geschrieben 5. Oktober 2011 Sub ersetzen(ByRef x As String) x = System.Text.RegularExpressions.Regex.Replace(x, "[[I]alle Zeichen[/I]]", "") End Sub Ich habe es jetzt so und es funktioniert auch. Danke euch beiden. Zitieren
Sacaldur Geschrieben 5. Oktober 2011 Geschrieben 5. Oktober 2011 auch wenn du jetzt etwas hast, mit dem du zufrieden bist: was wolltest du damit erreichen? vielleicht ist der ansatz, den du gewählt hast, nicht der günstigste vielleicht wäre es besser, statt die ungültigen Zeichen raus zu fischen, die gültigen zu behalten allerdings kann ich nicht sagen, ob es optimalere Lösungen gibt, da du dein eigentliches Problem bisher nicht genannt hast Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.