myGully.com

myGully.com (https://mygully.com/index.php)
-   Entwicklung & Programmierung (https://mygully.com/forumdisplay.php?f=72)
-   -   PHP - RegEx (https://mygully.com/showthread.php?t=2260344)

Battle Toad 20.03.11 18:23

PHP - RegEx
 
Zufällig jemand hier der da durchblickt und mir eben einen regulären Ausdruck erstellen kann?

Der RegEx muss auf alle beliebigen Folgen von Zeichen+Zahlen+Buchstaben zutreffen, nicht jedoch auf reine Buchstaben, Zeichen oder Zahlen Strings.
Whitespace ist ebenfalls erlaubt.

Beispiel:
String = Ergebnis der preg_match()-Funktion
abcde = kein Treffer
12345 = kein Treffer
§$%& = kein Treffer
12abc = trifft zu
13$% = trifft zu
ab%& = trifft zu
usw.

Ich brauch das nur ein einziges mal um die User-Passwörter zu validieren macht also keinen Sinn, 500 Seitige Tutorials zu wälzen.

Gruß Battle Toad

Thelvan 20.03.11 19:09

[a-zA-Z]{1,} [0-9]{1,} [!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]{1,}

Bin mir grad nich sicher, ob das richtig ist, aber so ungefähr sollts aussehen^^

GangBangMutti 20.03.11 19:26

Zitat:

Zitat von Thelvan (Beitrag 22055389)
[a-zA-Z]{1,} [0-9]{1,} [!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]{1,}

Bin mir grad nich sicher, ob das richtig ist, aber so ungefähr sollts aussehen^^

Wenn ich {1,} richtig als "mindestens einmal" interpretiere, dann ist das falsch, denn es reichen zwei dieser Kategorien aus.

Also folgende Kombinationen wären gültig.

[a-zA-Z]
[0-9]

[a-zA-Z]
[!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]

[0-9]
[!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~]


(Es fehlen die Umklammerungen und ODER-Verknüpfungen)

Battle Toad 20.03.11 21:22

Hm... das mit dem Mindestens scheint zwar nicht zu klappen, bringt mich aber auf eine Idee...
Für alles andere reicht mein wissen über RegEx ja aus, nur bei PW's wird's haarig...
Ich probiers mal aus und poste dann meinen (Miss?)Erfolg...

Battle Toad 21.03.11 23:49

So, nach einigem hin und her (Beschreibungen/Tutorials lesen) hab ich eine Lösung gefunden, die kurz und halbwegs elegant ist, allerdings denk ich, dass jemand mit mehr Kenntnis der Materie die noch optimieren kann:

'/([A-Za-z]+\W+|\W+[A-Za-z]+|\d+\D+|\D+\d+)+/'

Ich frage hiermit im Grunde nach:

BUCHSTABE plus SONDERZEICHEN
oder
SONDERZEICHEN plus BUCHSTABE
oder
ZAHL plus NICHT-ZAHL
oder
NICHT-ZAHL plus ZAHL

Die Dopplung gefällt mir noch nicht, aber ich weiß nicht, wie ich die weg bekomme ohne dass der Ausdruck wieder ungenau wird. Zwei verschiedene Operatoren wie + und ? zu verwenden hinter den einzelnen Elementen beeinflusst nur ob der andere Operator greedy oder ungreedy ist...
Also wenn das noch wer lösen kann bin ich happy, ansonsten schreib ich das in den Code.

Die Dopplung brauch ich, a die Beispiele auch durchmixt Sinn ergeben müssen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.