| |
|
|
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 X3System: 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? [...] |
|
|
| |
|
|
|
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: KompilierenMarkierenSeparierenprint 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 : KompilierenMarkierenSeparierenPrint 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. KompilierenMarkierenSeparierenCls
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. KompilierenMarkierenSeparierenCls
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. | |
|
| XProfan X3System: 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 ▲ |
|
|
|