Deutsch
Forum

RegEx

 
- Seite 1 -



Michael
W.
Irgendwie bin ich mit dem Umdefinieren des Ersatzzeichens in den regulären Ausdrücken nicht so glücklich.

Es wäre schön wenn die Ausdrücke so geschrieben werden könnten, wie überall anders auch...

Bekomme dies nicht zum laufen...
KompilierenMarkierenSeparieren
' maskierte Werte testen

Proc IsOk

    Parameters x%
    Return if(x%,"OK","nicht OK")

EndProc

Proc IsMask1'Datum

    ' erlaube nur "dd.mm.yyyy" (als Trenner aber "-","/",".")
    ' ungültiges Datum (z.B. 31.02.1999) wird nicht erkannt
    Parameters TestWert$
    var re$ = "([1-9]|[ 0][1-9]|[12][0-9]|3[01])[-/.](0[1-9]|1[012])[-/.](18|19|20|21)[0-9]{2}"
    Return if(match$(re$,TestWert$),1,0)

EndProc

Proc IsMask2'email

    ' EMail nach RFC 2822 (mit einigen speziellen TLDs)
    ' zum Testen auch eine super simple....
    Parameters TestWert$
    /*
    'ori:  [a-z0-9!#$%&'*+/=?^_'{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_'{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|asia|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel)\b
    var re$ = "(?i)[a-z0-9!#$%&'*+/=?^_'{|}~~-]+(~.[a-z0-9!#$%&'*+/=?^_'{|}~~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?~.)+([A-Z]{2}|asia|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel)~b"
    */
    'TEST
    'ori:  \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}\b
    var re$ = "(?i)~b[A-Z0-9._%+-]+@[A-Z0-9.-]+~.[A-Z]{2,6}~b"
    'TEST
    Return if(match$(re$,TestWert$),1,0)

EndProc

cls
print "Masken testen\n"
Declare Test$
Print "Datum"
Test$ = "1.12.1999"
Print Test$;tab(15);IsOk(IsMask1(Test$))
Test$ = "25-12-2007"
Print Test$;tab(15);IsOk(IsMask1(Test$))
Test$ = "12-25-2007"
Print Test$;tab(15);IsOk(IsMask1(Test$))
Test$ = "/12/1999"
Print Test$;tab(15);IsOk(IsMask1(Test$))
Print "\nEMail"
Test$ = "john@aol...com"
Print Test$
Case IsMask2(Test$) : Print "  ";$Match
Print "  ";IsOk(IsMask2(Test$))
Test$ = "Mike\\ O'Dell@ireland.com"
Print Test$
Case IsMask2(Test$) : Print "  ";$Match
Print "  ";IsOk(IsMask2(Test$))
Test$ = "The email address president@whitehouse.gov is valid."
Print Test$
Case IsMask2(Test$) : Print "  ";$Match
Print "  ";IsOk(IsMask2(Test$))
waitinput
end
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
16.12.2014  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


Michael
W.
Ich bin zwar immer noch über das Ersatzzeichen unglücklich, aber der "simple" Fehler ist enttarnt...
KompilierenMarkierenSeparieren
' maskierte Werte testen
' (lauffähig)

Proc IsOk

    Parameters x%
    Return if(x%,"OK","nicht OK")

EndProc

Proc IsMask1'Datum

    ' erlaube nur "dd.mm.yyyy" (als Trenner aber "-","/",".")
    ' ungültiges Datum (z.B. 31.02.1999) wird nicht erkannt
    Parameters TestWert$
    var re$ = "([1-9]|[ 0][1-9]|[12][0-9]|3[01])[-/.](0[1-9]|1[012])[-/.](18|19|20|21)[0-9]{2}"
    Return if(match$(re$,TestWert$)<>"",1,0)

EndProc

Proc IsMask2'email

    ' EMail super simple....
    Parameters TestWert$
    'ori:  \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}\b
    var re$ = "(?i)~b[A-Z0-9._%+-]+@[A-Z0-9.-]+~.[A-Z]{2,6}~b"
    Return if(match$(re$,TestWert$)<>"",1,0)

EndProc

Proc IsMask3'email

    ' EMail nach RFC 2822 (mit einigen speziellen TLDs)
    Parameters TestWert$
    'ori:  [a-z0-9!#$%&'*+/=?^_'{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_'{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|asia|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel)\b
    var re$ = "(?i)[a-z0-9!#$%&'*+/=?^_'{|}~~-]+(~.[a-z0-9!#$%&'*+/=?^_'{|}~~-]+)*@([a-z0-9]([a-z0-9-]*[a-z0-9])?~.)+([A-Z]{2}|asia|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel)~b"
    Return if(match$(re$,TestWert$)<>"",1,0)

EndProc

cls
print "Masken testen\n"
Declare Test$
Print "Datum"
Test$ = "1.12.1999"
Print Test$;tab(15);IsOk(IsMask1(Test$))
Test$ = "25-12-2007"
Print Test$;tab(15);IsOk(IsMask1(Test$))
Test$ = "12-25-2007"
Print Test$;tab(15);IsOk(IsMask1(Test$))
Test$ = "/12/1999"
Print Test$;tab(15);IsOk(IsMask1(Test$))
Print "\nEMail simpel"
Test$ = "john@aol...com"
Print Test$
Case IsMask2(Test$) : Print "  ";$Match
Print "  ";IsOk(IsMask2(Test$))
Test$ = "Mike\\ O'Dell@ireland.com"
Print Test$
Case IsMask2(Test$) : Print "  ";$Match
Print "  ";IsOk(IsMask2(Test$))
Test$ = "The email address president@whitehouse.gov is valid."
Print Test$
Case IsMask2(Test$) : Print "  ";$Match
Print "  ";IsOk(IsMask2(Test$))
Print "\nEMail RFC 2822"
Test$ = "john@aol...com"
Print Test$
Case IsMask3(Test$) : Print "  ";$Match
Print "  ";IsOk(IsMask3(Test$))
Test$ = "Mike\\ O'Dell@ireland.com"
Print Test$
Case IsMask3(Test$) : Print "  ";$Match
Print "  ";IsOk(IsMask3(Test$))
Test$ = "The email address president@whitehouse.gov is valid."
Print Test$
Case IsMask3(Test$) : Print "  ";$Match
Print "  ";IsOk(IsMask3(Test$))
waitinput
end
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
16.12.2014  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.841 Betrachtungen

Unbenanntvor 0 min.
Erhard Wirth14.06.2024
H.Brill07.12.2023
Michael W.31.07.2017
maroro15.03.2016
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

Michael W. (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie