Deutsch
Wünsche und Anregungen

Vorschläge für künftige Versionen

Hilfeerweiterung Regex

 

Michael
W.
Die regulären Ausdrücke braucht man doch ab und an.

Und jedesmal fällt mir auf: Das was ich suche ist nicht in der Hilfedatei, es wird nur darauf verwiesen. Dies fällt niemandem auf, der immer online ist.

Aber ich entwickle auch offline und da fehlt dann die Information.

Unter "28.11 - Reguläre Ausdrücke in XProfan" steht der Verweis auf "RegExpStudio"
(Gut, das die Seite immer noch existiert. Das ist im Netz ja aber nicht immer so...)

Die Informationen sollten in die Hilfedatei eingearbeitet werden.
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
24.08.2015  
 




Jörg
Sellmeyer
Ich behaupte mal: das Einarbeiten (mit eigenen Worten ohne einfach den Text zu kopieren), ist ein unglaublicher Aufwand, den Roland alleine nicht schafft.
Einfach in die Hilfe hineinkopieren geht nicht wegen Urheberschutzrecht.
Sich die Seite aber auf den Rechner zu ziehen, ist ein Aufwand von wenigen Augenblicken, der einem auch für die Zukunft das Wissen sichert..
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
25.08.2015  
 




H.Brill
Hat vielleicht jemand noch das Thema, das vor allem
die Fangvariablen anspricht, parat ?
Darüber hatte letztes Jahr P.Specht in Paules Forum
eine ganze Seite geschrieben. Ich finde es bloß nicht
mehr und hatte es vergessen auf PC zu speichern.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
29.08.2015  
 



Meinst Du dies hier?  [...] 
 
29.08.2015  
 




H.Brill
Danke, ja das war es in etwa.
Allerdings hatte p.specht später in einem
anderen Thread eine ganze Seite, sogar
mit Beispielen, geschrieben.

Aber das hilft mir auch schon weiter.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
29.08.2015  
 




Michael
W.
LOL, ein Draufblick und es wird etwas klarer.
Bei RegEx heißt das einfach backreference.

In dem Teil, das Roland nutzt sind 9 Backreferences möglich. Und ja, sie greifen sich das was in runden Klammern ist.
Man kann also mit einem RegEx bis zu 9 Teile aus einem gefunden String herausfiltern.

Das muß allerdings dann auch umgesetzt werden. Ich glaube, das Roland hier noch nichts eingebaut hat.

Die Library bietet noch einige Teile mehr. Allerdings fehlen auch Teile in der Library, z.B. Lookarounds sind nicht enthalten.
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
29.08.2015  
 




H.Brill
Obwohl ich hiermit noch nicht so richtig klarkomme:
KompilierenMarkierenSeparieren
print Match$("([0-9]{1,2})~2","abcdef11gghijklmnopqrst22uuvwxyzz")

Hier wollte ich die 22 hinter st abgreifen. Mache ich
da was falsch ?

PS:
Ja, ich denke auch, daß Roland die reg. Ausdrücke
nur sehr rudimentär (teilweise) implementiert hat.
Da fehlt noch einiges, was auch durchaus brauchbar wäre.

Was auch noch unbedingt rein müßte :
KompilierenMarkierenSeparieren
Print SubStr$("XXX8:20xxx15:00YYYYY20:00yyyyy", 2, "[0-9]{1,2}:[0-9]{1,2}")

Daß man hier z.B. die 2. Uhrzeit abgreifen könnte.
Auch Len(S, [D]) wäre evtl. ein Kandidat. Wenn D auch
mit reg. Ausdrücken arbeiten könnte.

Wenn man mit den reg. Ausdrücken mal angefangen hat,
möchte man sie irgendwann nicht mehr missen.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
30.08.2015  
 




Michael
W.
zu 22:
Hierfür braucht man die Backreferences nicht, das geht mit einfachem RegEx. Das innerhalb der runden Klammern reicht - ohne die runden Klammern. Es heißt: 1 bis 2 Ziffern.
KompilierenMarkierenSeparieren
Cls
Declare RegExMaske$, SuchText$, StartPos&, Treffer&
Declare savePos&, saveLen&, saveTxt$
Set("RegEx",1)
RegExMaske$ = "[0-9]{1,2}"
SuchText$ = "abcdef11gghijklmnopqrst22uuvwxyzz"
StartPos& = 0
Treffer& = 0
Print SuchText$

While InStr(RegExMaske$, SuchText$, StartPos&) <> 0

    savePos& = %MatchPos
    saveLen& = %MatchLen
    saveTxt$ = $Match
    Inc Treffer&
    Print "  gefunden: \q";saveTxt$;"\q, Posi:",savePos&+StartPos&;", Länge:",saveLen&;", Treffer:",Treffer&
    Inc StartPos&, savePos& + saveLen&

EndWhile

Print "ENDE"
WaitEnd

...und das andere erledigt sich doch auch von selbst.

Ich hab einfach mal den Text und das RegEx ersetzt. Den Rest macht dann der Programmierer so, wie er es haben möchte.
KompilierenMarkierenSeparieren
Cls
Declare RegExMaske$, SuchText$, StartPos&, Treffer&
Declare savePos&, saveLen&, saveTxt$
Set("RegEx",1)
RegExMaske$ = "[0-9]{1,2}:[0-9]{1,2}"
SuchText$ = "XXX8:20xxx15:00YYYYY20:00yyyyy"
StartPos& = 0
Treffer& = 0
Print SuchText$

While InStr(RegExMaske$, SuchText$, StartPos&) <> 0

    savePos& = %MatchPos
    saveLen& = %MatchLen
    saveTxt$ = $Match
    Inc Treffer&
    Print "  gefunden: \q";saveTxt$;"\q, Posi:",savePos&+StartPos&;", Länge:",saveLen&;", Treffer:",Treffer&
    Inc StartPos&, savePos& + saveLen&

EndWhile

Print "ENDE"
WaitEnd
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
30.08.2015  
 




Michael
W.
H.Brill (30.08.15)
Hier wollte ich die 22 hinter st abgreifen.


Dafür wären dann die Lookaraunds wieder gut (gibt's aber noch nicht):
KompilierenMarkierenSeparieren
RegExMaske$ = "(?<=st)[0-9]{1,2}:[0-9]{1,2}"
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
30.08.2015  
 




H.Brill
Danke, mit Schleife ist es schon klar.
vielleicht läßt sich Roland ja noch was einfallen.
Wäre halt schön, wenn es auch ohne Schleife
gehen würde.

Da steckt ja noch jede Menge Potential dahinter.
Noch so ein paar Ideen :
- Set("RegEx", 2)
Da es diese Lib auch für Utf-8 für Delphi gibt,
wäre ein Umschalten auf die Unicode-Lib
auch nicht schlecht. Da entfiele dann das
vorherige Konvertieren des Strings.
- Container-Funktion RegEx(....)
Damit könnte man z.B. die Modifikatoren
beeinflussen. Damit sähen auch so manche
Suchmuster nicht mehr so kryptisch aus, wenn
man sie sonst 'on the fly' übergibt.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
30.08.2015  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

9.314 Betrachtungen

Unbenanntvor 0 min.
H.Brill07.12.2023
Sven Bader20.03.2023
Jörg Sellmeyer15.05.2018
Michael W.31.07.2017
Mehr...

Themeninformationen



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