Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Suche GREP für Wörter mit Buchstaben UND Ziffern

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Suche GREP für Wörter mit Buchstaben UND Ziffern

Marc Sidon
Beiträge gesamt: 262

18. Apr 2017, 17:27
Beitrag # 1 von 14
Bewertung:
(6057 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
auch wenn ich Skripten kann wie ein Großer, befinde ich mich in puncto GREP leider immer noch im Anfänger-Modus.... :)

Kann mir jemand von Euch vielleicht helfen?
Ich suche einen GREP Ausdruck, der folgende Wörter findet:

"Ganzes Wort, mindestens 6 (maximal 20) Zeichen, davon mindestens ein Zeichen eine Zahl und mindestens ein Zeichen ein Grossbuchstabe, keine Kleinbuchstaben"

Code
ABC123 = ja 
123ABC = ja
123ABc = nein (enthält Kleinbuchstaben)
12ABC = nein (zu kurz, nur 5 Zeichen)
ABCABC = nein (nur Buchstaben)
ABCABC2 = ja
123123 = nein (nur Zahlen)
123123C = ja
123123C123123C123123C = nein (zu lang)



Vielen Dank im Voraus...
Gruß,
Marc Sidon
X

Suche GREP für Wörter mit Buchstaben UND Ziffern

Kai Rübsamen
Beiträge gesamt: 4684

18. Apr 2017, 21:36
Beitrag # 2 von 14
Beitrag ID: #557076
Bewertung:
(6044 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

irgendwie spinnt das Forum heute. Ich hatte meine Antwort schon mal um 19.00 gepostet. Egal. Versuch es mal so:

(?=\b[\u\d]{6,20}\b)(\u+\d+|\d+\u+)


als Antwort auf: [#557075]

Suche GREP für Wörter mit Buchstaben UND Ziffern

Gerald Singelmann
  
Beiträge gesamt: 6269

19. Apr 2017, 11:47
Beitrag # 3 von 14
Beitrag ID: #557077
Bewertung:
(6006 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
@Kai

dein grep findet von ABC2ABC nur das ABC2

Ohne Geniestreich ist die Aufgabe m.E. nicht zu lösen. Mal schauen, ob mir einer einfällt ;)


als Antwort auf: [#557076]

Suche GREP für Wörter mit Buchstaben UND Ziffern

Gerald Singelmann
  
Beiträge gesamt: 6269

19. Apr 2017, 12:13
Beitrag # 4 von 14
Beitrag ID: #557080
Bewertung:
(6003 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Gehen wir mal schrittweise vor, immer schwieriger werdend:

"Ein Wort zwischen 6 und 20 Zeichen darf nur aus Großbuchstaben und Ziffern bestehen"
Code
\b[\u\d]{6,20}\b 


"Ein Wort darf nur aus Großbuchstaben und Ziffern bestehen, muss aber mindestens einen Großbuchstaben enthalten"
Code
\b[\u\d]*\u[\u\d]*\b 


"Ein Wort darf nur aus Großbuchstaben und Ziffern bestehen, muss aber mindestens einen Großbuchstaben sowie mindestens eine Ziffer enthalten"
Daran scheitere ich schon, da die Reihenfolge offen ist. Es kann eine einsame Ziffer am Anfang oder am Ende stehen, das gleiche gilt für den Großbuchstaben.
Code
\b[\u\d]*\u[\u\d]*\d[\u\d]*\b 

...ist also keine Lösung, weil es 2ABCDEF und 123456A nicht findet.

Es braucht also einen ganz anderen Denkansatz


als Antwort auf: [#557075]

Suche GREP für Wörter mit Buchstaben UND Ziffern

Marc Sidon
Beiträge gesamt: 262

19. Apr 2017, 12:18
Beitrag # 5 von 14
Beitrag ID: #557081
Bewertung:
(6000 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wow,
bis hierhin schon mal tausend Dank für Eure Mühe...

Dass das sooo kompliziert ist, hätte ich nicht gedacht.
Kein Wunder, dass ich da mit meinem kleinen Köpfchen nicht mal eben auf eine Lösung komme...

@Gerald: Du hast natürlich Recht, ich hatte wohl noch ein paar Beispiel-Fälle vergessen, um meine textuelle Regel korrekt testen zu können...

@Kai: Die Website ist wohl umgezogen, daher die Probleme mit dem Forum...

Wie gesagt, schon mal vielen Dank bis hierher...
Ich suche auch fleißig weiter nach Lösungen.

Gruß,
Marc


als Antwort auf: [#557080]
(Dieser Beitrag wurde von Marc Sidon am 19. Apr 2017, 12:23 geändert)

Suche GREP für Wörter mit Buchstaben UND Ziffern

Marc Sidon
Beiträge gesamt: 262

19. Apr 2017, 12:26
Beitrag # 6 von 14
Beitrag ID: #557082
Bewertung:
(5996 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also nochmal der Versuch einer Auflistung der Testfälle:

Code
ABC123 = ja  
123ABC = ja
123ABc = nein (enthält Kleinbuchstaben)
12ABC = nein (zu kurz, nur 5 Zeichen)
ABCABC2 = ja
123123C = ja
123123C123123C123123C = nein (zu lang)
ABC2ABC = ja
123A123 = ja
2ABCABC = ja
123123A = ja
1A2B3C = ja
ABCABC = nein (nur Buchstaben)
123123 = nein (nur Zahlen)



als Antwort auf: [#557081]
(Dieser Beitrag wurde von Marc Sidon am 19. Apr 2017, 12:34 geändert)

Suche GREP für Wörter mit Buchstaben UND Ziffern

Gerald Singelmann
  
Beiträge gesamt: 6269

19. Apr 2017, 12:31
Beitrag # 7 von 14
Beitrag ID: #557083
Bewertung:
(5991 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
OK, anderer Denkansatz:


Wir suchen eine dieser 4 Varianten:

A....A
1....1
A....1
1....A

also: fängt an/hört auf mit Ziffer oder Buchstabe.

Die unteren beiden sind einfach, weil die Bedingung "mindestens" bereits durch Anfang und Ende abgefrühstückt ist.

Code
\b(\u[\u\d]{4,18}\d)|(\d[\u\d]{4,18}\u)\b 


A....A ohne Längenbegrenzung ist dann auch einfach.
Code
\b\u[\u\d]*\d[\u\d]*\b 


Wir haben dann
Code
\b(\u[\u\d]{4,18}\d)|(\d[\u\d]{4,18}\u)|(\u[\u\d]*\d[\u\d]*)|(\d[\u\d]*\u[\u\d]*)\b 


als nicht-ganz-Lösung, weil 1....A und A....1 keinen Längencheck haben.

Den da noch einzubauen, würde mit diesem Ansatz sehr umfangreich werden. Ich breche es mal in mehrere Zeilen auf:
Code
\b 
(?:\u[\u\d]{4,18}\d)
|
(?:\d[\u\d]{4,18}\u)
|
(?:\u\d[\u\d]{4,18})
|
(?:\d\u[\u\d]{4,18})
|
(?:\u\u\d[\u\d]{3,17})
|
(?:\d\d\u[\u\d]{3,17})
|
(?:\u\u\u\d[\u\d]{2,16})
|
(?:\d\d\d\u[\u\d]{2,16})
|
(?:\u\u\u\u\d[\u\d]{1,15})
|
(?:\d\d\d\d\u[\u\d]{1,15})
|
(?:\u\u\u\u\u\d[\u\d]{,14})
|
(?:\d\d\d\d\d\u[\u\d]{,14})
u.s.w
\b


Ich glaub, mit nem Script ginge es leichter.


als Antwort auf: [#557080]

Suche GREP für Wörter mit Buchstaben UND Ziffern

Marc Sidon
Beiträge gesamt: 262

19. Apr 2017, 12:41
Beitrag # 8 von 14
Beitrag ID: #557084
Bewertung:
(5988 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ok, Stop Stop.... :)

Ich habe nun eine Lösung!
Gerald, Du hast natürlich Recht, mit einem Skript ist wäre/ist es einfacher. Und ich habe von Anfang an falsch gedacht. Natürlich suche ich mit diesem GREP innerhalb eines Skriptes. Und mit einem Einfachen GREP, nämlich

Code
\b[A-Z0-9]{6,20}\b 


finde ich alle 6-20 Zeichen langen Wörter, die nur Zahlen und/oder Großbuchstaben beinhalten. Und alles, was ich DANN finde, teste ich im Skript, ob sich auch mindestens eine Zahl UND ein Großbuchstabe darin befindet.

Hätte ich die Information nicht unterschlagen, dass ich mich natürlich in einem Skript befinde, hättet Ihr mich wahrscheinlich sofort darauf gestoßen... SORRY!

Perfekt!!!
Ihr seid mal wieder die Besten!
Tausend Dank. Manchmal steht man (ICH) einfach auf dem Schlauch...

Gruß,
Marc


als Antwort auf: [#557083]
(Dieser Beitrag wurde von Marc Sidon am 19. Apr 2017, 12:45 geändert)

Suche GREP für Wörter mit Buchstaben UND Ziffern

Kai Rübsamen
Beiträge gesamt: 4684

19. Apr 2017, 12:43
Beitrag # 9 von 14
Beitrag ID: #557085
Bewertung:
(5985 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Gero, du denkst zu kompliziert ;-)

Antwort auf: als nicht-ganz-Lösung, weil 1....A und A....1 keinen Längencheck haben.


Der Längencheck passiert hier: (?=\b[\u\d]{6,20}\b)
Weil der Lookahead VOR dem Suchausdruck steht, kann der Ausdruck damit 2x durchsucht werden. Im ersten Lauf werden nur Stellen mit Großbuchstaben und Zahlen, begrenzt auf 6 bis 20 Zeichen gefunden. Im zweiten Lauf werden dann die Anforderungen weiter spezifiziert.

Also im Prinzip genau das, was man auch per Skript machen würde.

Der hier sollte auch zu Fuß funktionieren:
(?=\b[\u\d]{6,20}\b)(\u+\d+[\u\d]*|\d+\u+[\u\d]*)


als Antwort auf: [#557084]
(Dieser Beitrag wurde von Kai Rübsamen am 19. Apr 2017, 12:49 geändert)

Anhang:
Bildschirmfoto 2017-04-19 um 12.47.43.png (89.8 KB)

Suche GREP für Wörter mit Buchstaben UND Ziffern

Marc Sidon
Beiträge gesamt: 262

19. Apr 2017, 12:47
Beitrag # 10 von 14
Beitrag ID: #557086
Bewertung:
(5981 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Der hier sollte auch funktionieren:
(?=\b[\u\d]{6,20}\b)(\u+\d+[\u\d]*|\d+\u+[\u\d]*)


Wow, ja tut er!!! RESPEKT!

Kannst Du mir den Ansatz bitte kurz erläutern?


als Antwort auf: [#557085]

Suche GREP für Wörter mit Buchstaben UND Ziffern

Kai Rübsamen
Beiträge gesamt: 4684

19. Apr 2017, 12:57
Beitrag # 11 von 14
Beitrag ID: #557087
Bewertung:
(5976 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Marc, ich hab meinen Beitrag oben noch einmal angepasst als du geschrieben hast.

Antwort auf: Und mit einem Einfachen GREP, nämlich \b[A-Z0-9]{6,20}\b
finde ich alle 6-20 Zeichen langen Wörter, die nur Zahlen und/oder Großbuchstaben beinhalten.


Richtig, das macht bei mir der:
\b[\u\d]{6,20}\b

Weil ich aber den gleichen String 2x durchsuchen möchte, darf ich nicht den Bereich sondern nur die Position finden, daher:
(?=\b[\u\d]{6,20}\b)


Antwort auf: Und alles, was ich DANN finde, teste ich im Skript, ob sich auch mindestens eine Zahl UND ein Großbuchstabe darin befindet.

(\u+\d+[\u\d]*|\d+\u+[\u\d]*)

Hier gibt es zwei Vorgaben:
1. entweder der Großbuchstabe ist vorne, mindestens 1x und dann können 5 Zahlen kommen oder
2. eine Zahl ist vorne, mindestens 1x und dann können Großbuchstaben kommen

Nicht bedacht hatte ich den Fall von Gerald, dass auch Zahlen und Buchstaben abwechselnd kommen können. Das löse ich dann mit [\u\d]*
Die runden Klammern sind nur Kosmetik und halten die Alternation visuell zusammen. Um die eckigen Klammern am Schluss nur 1x zu schreiben, ginge dann final auch das:

(?=\b[\u\d]{6,20}\b)(\u+\d+|\d+\u+)[\u\d]*


als Antwort auf: [#557086]
(Dieser Beitrag wurde von Kai Rübsamen am 19. Apr 2017, 13:10 geändert)

Suche GREP für Wörter mit Buchstaben UND Ziffern

Gerald Singelmann
  
Beiträge gesamt: 6269

19. Apr 2017, 14:40
Beitrag # 12 von 14
Beitrag ID: #557089
Bewertung:
(5935 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
@Kai

Wow, wo hast du denn den Trick her, mit einem LookAhead einfach eine Position zu finden, aber der man neu formulieren kann?

Das ist wirklich cool.


als Antwort auf: [#557087]

Suche GREP für Wörter mit Buchstaben UND Ziffern

Kai Rübsamen
Beiträge gesamt: 4684

19. Apr 2017, 14:57
Beitrag # 13 von 14
Beitrag ID: #557092
Bewertung:
(5931 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hm, keine Ahnung. Ich kenne das schon länger. Evtl. vom Friedl oder von hier http://www.regular-expressions.info/


als Antwort auf: [#557089]

Suche GREP für Wörter mit Buchstaben UND Ziffern

Gerald Singelmann
  
Beiträge gesamt: 6269

19. Apr 2017, 18:09
Beitrag # 14 von 14
Beitrag ID: #557106
Bewertung:
(5793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Dann wirds der Friedl gewesen sein, denn die Site hatte ich seinerzeit auch studiert.

Nicht schlecht, Herr Specht.


als Antwort auf: [#557092]
X