Microsoft Excel

Herbers Excel/VBA-Archiv

String prüfen (kein Minus-Zeichen am Anfang) | Herbers Excel-Forum


Betrifft: String prüfen (kein Minus-Zeichen am Anfang) von: ing.grohn
Geschrieben am: 17.01.2012 19:40:04

Hallo Forum,
mit folgender Funktion prüfe ich Strings:

Public Function erlaubt1(strText As String)
    Dim RegEx
    Set RegEx = CreateObject("Vbscript.regexp")
    With RegEx
        .Pattern = "[^0-9A-Za-z-_\.\\:]+"
        .Global = True
        erlaubt1 = .Replace(strText, "")
    End With
End Function

Ich möchte nun, dass das Minus-Zeichen zwar grundsätzlich erlaubt ist aber an "erster" Stelle entfernt wird.
Wie muss das Suchmuster aussehen??
La ringrazio fin d'ora für die Hilfe
Mit freundlichen Grüßen
Albrecht

  

Betrifft: Dafür brauchst du doch kein Extra-Muster, ... von: Luc:-?
Geschrieben am: 17.01.2012 19:51:14

…Albrecht;
es soll doch entfernt wdn → also tue es doch einfach!
Gruß Luc :-?


  

Betrifft: AW: Dafür brauchst du doch kein Extra-Muster, ... von: ing.grohn
Geschrieben am: 17.01.2012 20:01:58

Hallo Luc,
klar kann ich das entfernen!
würd aber schon gern wissen, wie so ein Suchmuster ausschaeun tät!
Frohes neues und schönen Abend
Albrecht


  

Betrifft: Suchmuster suchen, aber entfernen nichts, ... von: Luc:-?
Geschrieben am: 17.01.2012 20:14:45

…Albrecht,
allerdings kommt so etwas in praxi durchaus vor, zB bei Namenskonventionen; also sollte es dazu auch ein (positionsorientiertes) Muster geben. Mit Like wäre das ungefähr so "[!-][…".
Dito GutNeu+schönAb! Luc :-?


  

Betrifft: AW: Suchmuster suchen, aber entfernen nichts, ... von: ing.grohn
Geschrieben am: 17.01.2012 20:34:54

Hallo Luc,
der String sieht so aus:

-§&G%r/o(h§n)

mit Deinem Vorschlag kommt das raus:
G%ro(h§n)

eigentlich sollten aber fast alle Sonderzeichen verschwunden sein!

MfG
Albrecht


  

Betrifft: Das war kein Vorschlag für RedExp, ... von: Luc:-?
Geschrieben am: 18.01.2012 02:36:40

…Albrecht,
sondern für den Like-Operator, der demonstrieren sollte, dass so etwas prinzipiell geht und deshalb sicher auch in RegExp vorkommt. Nur habe ich keine Zeit, mich jetzt damit auseinanderzusetzen.
Ciao, Luc :-?


  

Betrifft: Ogottogott, blind -> RegExp! Sorry! owT von: Luc:-?
Geschrieben am: 18.01.2012 17:31:03

:-?


  

Betrifft: AW: Suchmuster suchen, aber entfernen nichts, ... von: ing.grohn
Geschrieben am: 17.01.2012 20:41:52

das Suchmuster nicht!
Aber Replace
Albrecht


  

Betrifft: AW: String prüfen (kein Minus-Zeichen am Anfang) von: Christian
Geschrieben am: 17.01.2012 21:37:43

Hallo Albrecht,
mit deinem Pattern "[^0-9A-Za-z-_\.\\:]+" schließt du sowohl Zahlen, Buchstaben als auch Bindestrich, Unterstrich, Punkt, Backslash und Doppelpunkt aus.

Wenn du Strings mit Bindestrich am Anfang auschließen willst, dann zB. so:
.Pattern = "^[^-].+"
heißt: Am Anfang ^ kein Minus [^-] und dann mindestens ein beliebiges Zeichen .+.

Wenn du Minus-Zeichen am Anfang ignorieren willst, dann zB. so:
.Pattern = "^-*(.+)"
heißt: Am Anfang ^ können Minuszeichen vorkommen -* (beachte: * ist "begierig"), und die im Anschluss vorkommenden Zeichen .+ willst du weiter verarbeiten (daher in Klammern)

Bei den regular expressions von VBS bin ich immer etwas vorsichtig, Zur Verarbeitung von Strings ist Perl sicher die geiegnetste Sprache. Hier sind Regex in den einschlägigen Tutorials auch bestens erklärt.

Gruß
Christian


  

Betrifft: AW: String prüfen (kein Minus-Zeichen am Anfang) von: ing.grohn
Geschrieben am: 17.01.2012 22:23:21

Hallo Christian,
mit Deiner ersten Aussage bin ich nicht einverstanden!
ich eleminiere ALLES ausser das was da steht.
Mit dem Rest muß ich mich beschäftigen.
Vielen Dank
Mit freundlichen Grüßen
Albrecht


  

Betrifft: AW: String prüfen (kein Minus-Zeichen am Anfang) von: Christian
Geschrieben am: 18.01.2012 20:10:13

hi Albrecht,
da hast du mich wohl missverstanden, ...
ich eleminiere ALLES außer das was da steht.
Ja, das stimmt, bei "Replace" wird alles, was nicht ausgeschlossen ist, ersetzt. Und die ausgeschlossenen Zeichen hab ich dir genannt...

Tipp:
-?[^0-9A-Za-z-_\.\\:]+

bzw:
-*[^0-9A-Za-z-_\.\\:]+

Gruß
Christian


Beiträge aus den Excel-Beispielen zum Thema "String prüfen (kein Minus-Zeichen am Anfang)"