| |
|
|
Nico Madysa | Ab XProfan10 hay el Befehl Match$, con el geprüft se, si una Sting una cierto Muster entspricht, also z.B. zuerst una Großbuchstabe kommt, entonces 3 Kleinbuchstaben, una Leerzeichen y danach 3 Ziffern. Yo habe hier einiges gesammelt con un pequeño Beispielprogramm: KompilierenMarcaSeparaciónDef $Name "[A-ZÄÖÜ]([a-zäöü]+|~.)(~-[A-ZÄÖÜ]([a-zäöü]{2,}|~.))* [A-ZÄÖÜ]([a-zäöü]+|~.)(~-[A-ZÄÖÜ]([a-zäöü]{2,}|~.))*"
Def $Time "((0|1|)[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?"
Def $Vorw "[1-9][0-9]{1,4}"
Def $Telnum "[1-9][0-9]{4,7}"
Def $Url "(https://)?(www~.)?[^@|²³.]{1,}(~.[^@|²³ .]{2,3}){1,3}"
Def $Street "([A-Z][a-z]{2,}~.? )+(0[1-9][0-9]*|[1-9][0-9]*)"
Def $Plz "[0-9]{5} [A-Z][a-z]{2,}"
Def $RoemM "M*"
Def $RoemC "(C[DM]|C[DM]|D?C{0,3})?"
Def $RoemX "(X[LC]|X[LC]|L?X{0,3})?"
Def $RoemI "(I[VX]|I[VX]|V?I{0,3})?"
Declare E& , T& , Roem$ , Addr$ , Tel$ , XTel$
Roem$ = "^" + $Roemm + $Roemc + $Roemx + $Roemi + "$"
Addr$ = "^" + $Name + "(
|[,;] )" + $Street + "(
|[,;] )" + $Plz + "$"
Tel$ = "^(0"+$Vorw+"/)?"+$Telnum+"$"
XTel$ = "^((~+49 ("+$Vorw+"|~(0"+$Vorw+"~))|0049 "+$Vorw+"|~(0049 "+$Vorw+"~)|0"+$Vorw+"|~(0"+$Vorw+"~)) )?"+$Telnum+"$"
+49 30 12345678
+49 (030) 12345678
0049 30 12345678
(0049 30) 12345678
030 12345678
(030) 12345678
12345678
Window 300 , 200 - 200 , 200
Cls External("User32","GetSysColor",15)
E& = Create("MultiEdit",%Hwnd,"",5,05,180,(-20))
T& = Create("Text",%Hwnd,"",5,30,180,160)
Whilenot IsKey(27)
Waitinput
Match$(XTel$,Gettext$(E&))<- Addr$ durch zu testende Konstante/Variable ersetzen
If %Matchpos >= 0
Settext T& , $Match
Else
Settext T& , "ungültig"
Endif
Wend
$Name = Vorname + Nachname Doppelnamen son mittels Bindestrich posible $Time = hh:mm oder hh:mm:ss $URL = Internetadresse, z.B. [...] desafortunadamente auch www.de $Street = Straßenname + Hausnummer, z.B. Str. des Friedens 1 $PLZ = Postleitzahl + Ort, z.B. 02979 Burghammer Roem$ = Römischess Zahlzeichen, z.B. CXVII Addr$ = komplette Adresse, por Chr$(13), Komma oder Semikolon getrennt. Tel$ = Festnetznummer, auch con Vorwahl posible, z.B. 011111/99999 XTel$ = erweiterte Festnetznummer, folgende Formate son posible: +49 30 12345678 +49 (030) 12345678 0049 30 12345678 (0049 30) 12345678 030 12345678 (030) 12345678 12345678 Kritik y Meinung son ausdrücklich erwünscht. |
|
|
| |
|
|
|
Clemens Meier | PLZ siempre con uno 0 beginnend? Schade, mi Stadt se ausgeschlossen |
|
|
| |
|
|
|
Michael Wodrich | TelefonNr va no: 0451/...
porque[quote:fa121d580d] Capture 0 Any character en 1-9 Exactly 5 times / End Capture ? (zero or one time) Any character en 1-9 Exactly 5 times [/quote:fa121d580d] url va auch no
[quote:fa121d580d]Capture [...] End Capture ? (zero or one time) Capture www~ . (any character) End Capture ? (zero or one time) Any character not en @|²³~ ~ ~. + (one or more times) ~ . (any character) Any character not en @|²³~ ~ At least 2, but not more than 3 times Capture ~ . (any character) Any character not en @|²³~ ~ At least 2, but not more than 3 times End Capture ? (zero or one time) [/quote:fa121d580d] y así más
PLZ
[quote:fa121d580d]0 Any character en 1-9 Exactly 4 times (space) Any character en A-Z Any character en a-z At least 2 times [/quote:fa121d580d] Kontrolliert con The Regulator - freie Versión
[...] [...] |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 10.06.2006 ▲ |
|
|
|
|
Nico Madysa | Also Yo bin sí ya veces glücklich, dass en el römischen Pagar no Fehler aufgetaucht son.(El haben mich fast en el WAHNSINN getrieben!). [quote:9180e9b2ca] PLZ siempre con uno 0 beginnend? Schade, mi Stadt se ausgeschlossen [/quote:9180e9b2ca] Sorry, Yo bin su ausgegangen, PLZs begännen grundsätzlich con uno 0.
[quote:9180e9b2ca] TelefonNr va no: 0451/... [/quote:9180e9b2ca] Das selbe en Grün. In el Minuten des Zusammenschreibens ging Yo su de, Vorwahlen hätten grundsätzlich 5 Ziffern.(Tuve simplemente una Brett vorm Kopf.)
@ Michael: Su Regulator berücksichtigt no, dass en el regülären Ausdrücken de XProfan el Tilde(~) el Escape-Signo es y no Backslash(). En me ha url funktioniert, abgesehen de el Macke, dass auch w w w . d e como URL durchgeht. (Yo habe w w w . d e gesperrt, así no stattdessen dieses [...] adecuado se.)
Hier es ahora una überarbeitete Versión: KompilierenMarcaSeparaciónDef $Name "[A-ZÄÖÜ]([a-zäöü]+|~.)(~-[A-ZÄÖÜ]([a-zäöü]{2,}|~.))* [A-ZÄÖÜ]([a-zäöü]+|~.)(~-[A-ZÄÖÜ]([a-zäöü]{2,}|~.))*"
Def $Time "((0|1|)[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?"
Def $Tel "(0[1-9][0-9]{2,3}/)?[1-9][0-9]{6}"
Def $Url "(https://)?(www~.)?[^@|²³~~~.]{1,}(~.[^@|²³~~~.]{2,3}){1,3}"
Def $Street "([A-Z][a-z]{2,}~.? )+(0[1-9][0-9]*|[1-9][0-9]*)"
Def $Plz "[0-9]{5} [A-Z][a-z]{2,}"
Def $Roemm "M*"
Def $Roemc "(C[DM]|C[DM]|D?C{0,3})?"
Def $Roemx "(X[LC]|X[LC]|L?X{0,3})?"
Def $Roemi "(I[VX]|I[VX]|V?I{0,3})?"
Declare E& , T& , Roem$ , Addr$
Roem$ = "^" + $Roemm + $Roemc + $Roemx + $Roemi + "$"
Addr$ = "^" + $Name + "(
|[,;] )" + $Street + "(
|[,;] )" + $Plz + "$"
Window 300 , 200 - 200 , 200
Cls External("User32","GetSysColor",15)
E& = Create("MultiEdit",%Hwnd,"",5,05,180,(-20))
T& = Create("Text",%Hwnd,"",5,30,180,160)
Whilenot Iskey(27)
Waitinput
Match$(Addr$,Gettext$(E&))<- Addr$ durch zu testende Konstante/Variable ersetzen
If %Matchpos >= 0
Settext T& , $Match
Else
Settext T& , "ungültig"
Endif
Wend
EDIT: Posesiones ahora esta Contribución editiert, como Yo wegen una Fehler no todavía alles otra vez reinstellen quería. Gracias a Clemens para el Richtigstellung meiner Vorstellung de Telefonnummern. ;D |
|
|
| |
|
|
|
Clemens Meier | Schon beim Überfliegen erneut una Fehler gesehen en Telefonnummer. El Vorwahl 07402 wäre después de deinem Ausdruck no posible.
Richtig, el 0 es a erster Punto. a 2. Punto 1-9, danach Pagar de 0-9
Musst also el Ausdruck todavía algo erweitern.
En el Hauptanschluß analog, a erster Punto 1-9, danach Pagar de 0-9:
Def $Tel (0[1-9]{3,4}/)?[1-9]{5} es also falso (y a kurz hinten, mi passt como ya no rein) Richtig oder para mindest mejor: Def $Tel (0[1-9][0-9]{2,3}/)?[1-9][0-9]{6}
Weitere mögliche Fehler dürfen nun auch otro suchen |
|
|
| |
|
|
|
| Folgende Angabemöglichkeiten para Telefonnummern son typisch:
Yo nehme ahora veces el Berliner Vorwahl 030
+49 30 12345678 +49 (030) 12345678 0049 30 12345678 (0049 30) 12345678 030 12345678 (030) 12345678 12345678
Oft genutzte Sonderzeichen in Teleangaben sind +-()[] /. |
|
|
| |
|
|
|
Clemens Meier | El 4. Variante kannte Yo no. Aber total una guter Ansatz en una kompletten Ausdruck a formulieren. |
|
|
| |
|
|
|
| [quote:926ddf29a9=Clemens Meier]El 4. Variante kannte Yo no. Aber total una guter Ansatz en una kompletten Ausdruck a formulieren.[/quote:926ddf29a9] Usted hast ya bastante - el 4. Variante es más selten, aber disponible: [...] |
|
|
| |
|
|
|
RGH | Außerdem setzt se siempre mehr el internationale Schreibweise con Bindestrich por:
+49-30-1234567 +4930-1234567
oder gar sin todos Trennzeichen (se gerne auch en Handynummern verwandt):
+49301234567
No a vergessen el Versionen con 00 en lugar de +.
Am besten debería uno Leerzeichen, Bindestriche y Klammern simplemente ausfiltern. Lo könnten sí en Nenenstellenanlagen todavía weitere Bestandteile folgen:
+49-30-123456-78
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 12.06.2006 ▲ |
|
|
|
|
Michael Wodrich | Posesiones beim Regulator probablemente no konvertiert??!?
Aber el puede ser sí a mano nachholen. En Prüfung fällt de paso en, el uno no con el runden Klammern así herumwerfen debería. El haben nämlich una bastante klare propio Función.
El regulären Ausdrücke also Por favor, sin la runden Klammern.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 13.06.2006 ▲ |
|
|
|
|
Clemens Meier | [quote:3a4ca13962=Michael Wodrich] El regulären Ausdrücke also Por favor, sin la runden Klammern. [/quote:3a4ca13962] Verstehe Yo no, como puede ser reguläre Ausdrücke sin runde Klammern redactar. El son una absolutes Muss en sogenannte Subpattern a forma. |
|
|
| |
|
|
|
Michael Wodrich | Richtig, el Name fiel No así rápidamente una... |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 13.06.2006 ▲ |
|
|
|