PS- array springt, if condition greift immer

Mitglied: TheUnreal

TheUnreal (Level 1) - Jetzt verbinden

18.01.2021, aktualisiert 14:41 Uhr, 464 Aufrufe, 3 Kommentare

Hallo zusammen,

mal wieder geht es um mein famous Emailskript. Ich habe 2 Funktionen eingebaut, die aber beide Ihre Eigenheiten haben.
Da ich mich mit Regex und Powershell noch immer anfreunde, bitte ich um Hilfe (mal wieder).

In der Funktion CheckSalesDate wird die if-condition
immer ausgelöst, auch wenn Matches[2] nur 6 ist - Warum?

Die Frage hatte ich hier auch ergänzt, aber die wird untergehen...Sorry fürs doppelte Lottchen :( face-sad
https://administrator.de/content/detail.php?id=620767&token=755#comm ...

Hier möchte ich eigentlich nachsehen, ob in der Zeile mit "Nachname" etwas steht oder nicht - denn wenn diese Daten fehlen, kann ich keinen Abholauftrag auslösen wollen.
Unabhängig von meinem (hier) nichtssagenden If wandert der Match nach einem Treffer.
In meiner Testmail ist Nachname gefüllt, der Rest nicht. Nun wird mir im Match auch der Nachname gezeigt, aber im nächsten $part ist der Match dann plötzlich im übernachsten $part.
Also $part = Straße und §Matches[0]=" Hausnummer". Warum?

Da ich Regex noch verinnerliche, hier meine Denkweise beim zusammensetzen :
Matche, wo der Anfang gleich $part ist, gefolgt von einem Sonderzeichen, das einmal vorkommt, sich beliebig wiederholen darf, gefolgt von einem Wortzeichen, mindestens einmal, beliebig oft wiederholen darf und nicht ein CarriageReturn oder Linefeed ist.

Edit:
Regex-Debugger, * * da werden Sie geholfen :) face-smile Ein Regexdebugger - ziemlich genial. Somit hab ich erneut eine Lernkurve.
Damit mein Plan funktioniert, darf ich kein "\s+" im ersten Streich verwenden (ich suche ja eigentlich Leerzeichen). Sonst frisst er bei einem "Leerstring" das CR und landet bei Hausnummer. Darauf muss man erstmal kommen.

Liefert das Ergebnis, dass ich wünsche...fehlt noch die IF-Laterne, bitte
**

Freue mich über eine Laterne die Licht ins Dunkel bringt, oder einer Zange, die die Nägel im Brett vorm Kopf zieht.
Gruß Sascha
Mitglied: TheUnreal
18.01.2021, aktualisiert um 15:01 Uhr
So, der CheckTextBody steht und läuft. Das Spiel zwischen Matches und der Regexanordnung hab ich denn nun auch verstanden :) face-smile

Dann klappts auch mit dem Vergleich...Nur warum?
Bitte warten ..
Mitglied: 147323
147323 (Level 1)
LÖSUNG 18.01.2021, aktualisiert um 16:30 Uhr
Dann klappts auch mit dem Vergleich...Nur warum?
Weil ein Object mit einem Integer zu vergleichen macht hier so viel Sinn wie eine Banane gerade zu biegen :-) face-smile.
https://docs.microsoft.com/de-de/dotnet/api/system.text.regularexpressio ...
Also immer an die Typen denken. Powershell arbeitet objektorientiert und kennt diverse Typen.
Bitte warten ..
Mitglied: TheUnreal
19.01.2021 um 08:21 Uhr
Ergibt Sinn, danke auch :) face-smile Das kommt davon, wenn man Variablen nicht deklarieren muss^^

@banane und Sinn, krumm passen die nicht durch das Loch im Deckel des Mixers...
Bitte warten ..
Heiß diskutierte Inhalte
Linux
Installation Grammm Server
smeclntVor 1 TagFrageLinux13 Kommentare

Hallo zusammen, meine Linux Kenntnisse sind sehr rudimentär trotzdem suche ich eigentlich ständig nach einer Alternative zu MS Exchange. Bis jetzt gab es nichts ...

Switche und Hubs
Probleme im Netzwerk Switche teilweise nicht erreichbar
hukimanVor 10 StundenFrageSwitche und Hubs29 Kommentare

Guten Morgen, seit Monaten haben wir hier immer wieder Probleme mit dem Netzwerk, das Problem konnte ich leider aber noch immer nicht finden. Es ...

Erkennung und -Abwehr
Einer Malware auf der Spur. Benötige Sherlock Holmes!
streamVor 22 StundenFrageErkennung und -Abwehr7 Kommentare

Guten Abend Wenn ich meine Windows-10-Kiste starte, so gibt mir mein Router eine Meldung aus, dass eine bestimmte IP-Adresse wegen Bösartigkeit geblockt wurde. Auf ...

Windows 10
Windows 10 interes Mikro ohne Funktion
TPH125Vor 1 TagFrageWindows 1011 Kommentare

Hallo zusammen, Ich verzweifelt bald. Besitze einen Medion Akoya MD 97110. Habe Windows 10 installiert, seit dem funktioniert das inigrierte Mikrofon nicht mehr. Gerät ...

Batch & Shell
Tabellarische Ausgabe der Netzwerkschnittstellen
gelöst dysti99Vor 8 StundenFrageBatch & Shell18 Kommentare

Mit - ip a - werden ja die Netzwerkschnittstellen angezeigt. Ich möchte mit ein Batchscript folgende Ausgabe erreichen: 1 eth0 192.168.1.1 AD:13:67:56:14:D1 2 eth1 ...

Festplatten, SSD, Raid
(USB) Festplatten laut ?
TomEngelVor 1 TagFrageFestplatten, SSD, Raid6 Kommentare

Ich grüsse Sie Alle. Eine Frage eines engagierten Laien Habe mehrere 3,5 " Festplatte. Einige schon recht alt 8 Jahre, andere ca 2-3 jahre ...

Ubuntu
Mailserver Test Provider IP
gelöst it-blzVor 1 TagFrageUbuntu9 Kommentare

Hallo, ist es möglich einen "Mailserver" (Imap + smtp) in einer Virtual Box mit einer Provider IP (dynamisch - ist allerdings konstant) zu testen? ...

Hardware
DisplayPort zu USB-C Adapter Converter
gelöst felixhuth-itVor 1 TagFrageHardware11 Kommentare

Hallo liebe Gemeinde Ich habe da ein kleines Problemchen. Der Kunde wollte einen 14 Zoll Monitor mit Touch in Verbindung mit einem Mini PC ...