Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Regular Expressions
  Jenda.Rex

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Jenda.Rex (1889 mal gelesen)
bst
Mitglied



Sehen Sie sich das Profil von bst an!   Senden Sie eine Private Message an bst  Schreiben Sie einen Gästebucheintrag für bst

Beiträge: 192
Registriert: 31.08.2004

erstellt am: 12. Mrz. 2007 10:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Morgen,

seit einiger Zeit ist Jenda.Rex V0.14 hier verfügbar:

http://jenda.krynicky.cz/#Jenda.Rex

Hat sich schon jemand näher damit beschäftigt?

cu, Bernd

[Diese Nachricht wurde von bst am 12. Mrz. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

Win7, ACA2010

erstellt am: 12. Mrz. 2007 21:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für bst 10 Unities + Antwort hilfreich

Hallo Bernd,

Danke erstmal, die neue Version ist ja kaum paar Tage alt! :-)
Also ich hab's grade mal versucht in die Gänge zu bekommen - der erste Gang ist schonmal drin;-)

Verhakelt hatte ich mich etwas mit den Looks (behind und ahead):
'Dahinter' heisst ja eigentlich v.l.n.r. gesehen 'danach, also ...(?!...)
und das davor wäre ja dann (?=...)..., *brrr* total durcheinandergekommen, genau andersrum scheints zu sein.
Hier mal mein Testcode - lief ganz gut:

Code:

Sub jendaTest()
    Const O$ = "gis"
    Dim s As String, patter$, i%
    Dim re As Object
    Set re = CreateObject("Jenda.Rex")
   
    s = "fischer's fritze fischte frische fische."
   
    Debug.Print re.Replace(s, "fisch(?!er's|te)", "pinguin", O) 'negativer lookahead
    Debug.Print re.Replace(s, "fisch(?=te)", "kill", O) 'positiver lookahead
    Debug.Print re.Replace(s, "(?<=fri)sche", "vole", O) 'positiver lookbehind
    Debug.Print re.Replace(s, "(?<!fri)sche(?=r)", "edle", O) & Chr(13) '"negativer lookbehind
   
    patter = "(.*?)(f(?!r))(.*?)"
    Debug.Print "$1: " & re.Replace(s, patter, "$1", O) & " <---> " & "\1: " & re.Replace(s, patter, "\1", O)
    Debug.Print "$2: " & re.Replace(s, patter, "$2", O) & " <---> " & "\2: " & re.Replace(s, patter, "\2", O)
    Debug.Print "$3: " & re.Replace(s, patter, "$3", O) & " <---> " & "\3: " & re.Replace(s, patter, "\3", O)
    Debug.Print "$-test: " & re.Replace(s, patter, "$1" & "v" & "$3", O) & " <---> " & _
    "\-test: " & re.Replace(s, patter, "\1" & "v" & "\3", O)
   
    Set re = Nothing
End Sub


Ergibt das im DF:
Code:

fischer's fritze fischte frische pinguine.
fischer's fritze killte frische fische.
fischer's fritze fischte frivole fische.
fiedler's fritze fischte frische fische.

$1: ischer's fritze ischte frische ische. <---> \1: ischer's fritze ischte frische ische.
$2: fffische. <---> \2: fffische.
$3: ische. <---> \3: ische.
$-test: vischer's fritze vischte frische vische. <---> \-test: vischer's fritze vischte frische vische.



Erstaunt bin ich, dass hier $n oder \n keinen Walzer zu spielen scheinen *wunder*

Das war nur ein kleiner, erster Test, da geht aber ja glaub' noch bissel mehr ..., das hab' ich (noch) nicht probiert, *erstmal reinfuchsen muss* ;-)

lg Nancy
--
just for fun:    Nachtrag:

Code:

patter = "fisch(?=er's)(.*)fri(?=tze)(.*)fisch(?=te)(.*?fri)?(.*?)fisch(e)"
Debug.Print re.Replace(s, patter, "fiedl\1ka\2kill\3vole pinguin\5", O)
'==>:
fiedler's katze killte frivole pinguine.


Den string fand ich einfach heavy zum testen ...;;-))

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bst
Mitglied



Sehen Sie sich das Profil von bst an!   Senden Sie eine Private Message an bst  Schreiben Sie einen Gästebucheintrag für bst

Beiträge: 192
Registriert: 31.08.2004

erstellt am: 13. Mrz. 2007 09:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Nancy,

dankeschön :-)

Ich dachte aber eigentlich eher an die Neuerungen im Vergleich zur 'alten' Version 0.7. Hätte das wohl auch schreiben sollen :-(

FWIW, die Option s wie SingleLine bewirkt daß ein Punkt auch auf einen Zeilenwechsel paßt. Das gehört, wie übrigens auch die Lookbehinds, zu den Dingen die VBScript.RegExp leider nicht kann.

Einen schönen Tag noch,

Bernd

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

Win7, ACA2010

erstellt am: 13. Mrz. 2007 21:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für bst 10 Unities + Antwort hilfreich


jenda_1405.xls.txt

 
Hallo Bernd,

hab' mal fix die vbp-frm in ein vba-xl Userform gebracht
[nix wundern, hab auf die Schnelle ein IMG der Form auf die Userform gelegt,
als Hilfe/Authentität;-)]

Ich hoffe, ich hab alles richtig zugeordnet, erste Test's sind gelaufen.
Was jetzt direkt neu ist - keine Ahnung - evtl. die SQL-Kiste und das X(Ht)ML?
Wobei mir noch bissel unklar ist, was der Unterschied zwischen XHTML und XML ist?

lg Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

erstellt am: 13. Mrz. 2007 22:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für bst 10 Unities + Antwort hilfreich

Ich nochmal;-)

ich muss jetzt mal was hinterfragen betreffend der Sub:

Code:

Private Sub btnHTMLPrepare_Click()
    Set escRE = re.Prepare("(.*?)(<\w[\w\d]*(?:\s+\w[\w\d]*(?:\s*=\s*(?:[^"" '><\s]+|(?:'[^']*')+|(?:""[^""]*"")+))?)*\s*>|</\w[\w\d]*>|$)", "ge")
   
    escRE.Eval "sub JendaRex::Sandbox::esc {" & _
    " my $s = $_[0];" & _
    " $s =~ s/&(?!(?:\w+|#\d+);)/&/g;" & _
    " $s =~ s/</</g;" & _
    " $s =~ s/>/>/g;" & _
    " $s;" & _
    "}"
   
End Sub

Was zum Deibel soll A) der Part:

Code:
(.*?)(<\w[\w\d]*

bewirken?
Die \d stecken ja in \w schon mit drinnen, versteh' irgendwie die Konstellation nicht ... würde es aber gerne begreifen wollen.

Ebenso unverständlich, Part B):

Code:
(?:[^"" '><\s]+|(?:'[^']*')+|(?:""[^""]*"")+))?)*\s*>

... ziemlich starker Tobak IMHOIn my humble oppinion (Meiner Meinung nach), wobei mir das Lesen von RE's generell schwerer fällt, als das Schreiben.
Geht's euch auch so?

Und natürlich, wer eine Idee hat, was die zwei Parts da treiben - wäre schön,
weil bei mir ist grade irgendwie Rätselraten angesagt.

lg Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied



Sehen Sie sich das Profil von  an!

Beiträge: 4755
Registriert: 27.09.2000

Dell precision M4300, 4GB Arbeitsspeicher
NVidia FX360M
Windows XP professional SP3
CATIA V5 R16SP9, R17SP8, R18SP8, R19SP6
Adobe Acrobat 8
Linux: Ubuntu 8.04LTS

erstellt am: 14. Mrz. 2007 05:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für bst 10 Unities + Antwort hilfreich

Hallo zusammen,

Zitat:
Original erstellt von startrek:

Wobei mir noch bissel unklar ist, was der Unterschied zwischen XHTML und XML ist?

Generell oder speziell bei Jenda.Rex?

Viele Grüße,

CEROG

------------------
Inoffizielle CATIA-HIlfeseite
CATIA-FAQ
Inoffizielle Linux-Hilfeseite

http://www.cad-gaenssler.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bst
Mitglied



Sehen Sie sich das Profil von bst an!   Senden Sie eine Private Message an bst  Schreiben Sie einen Gästebucheintrag für bst

Beiträge: 192
Registriert: 31.08.2004

erstellt am: 14. Mrz. 2007 10:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Morgen Nancy,

1. \w[\w\d]*

Sehe ich eigentlich auch so. Sollte sich auch als \w\w* oder als \w+ schreiben lassen.

2. da geht es M.E. darum alle Zeichen innerhalb von Zeichenketten zuzulassen, nicht nur \w+

(?:'[^']*')+ sind Zeichenketten innerhalb eines einfachen '
(?:""[^""]*"")+ sind Zeichenketten innerhalb eines " (die " müssen ja innerhalb eines VBA-Strings verdoppelt werden)

[^"" '><\s]+ verstehe ich nicht, [^""'<>]+ wäre mir ja noch klar, alle Zeichen mit Ausnahme von Strings und HTML-Tags, wozu aber hier noch ein Leerzeichen und das \s gut sein soll ??? Das \s nimmt er ja vielleicht (??) um Zeilenumbrüche auszuschließen, aber dann hörts bei mir auch auf :-(

FWIW, prepare kompiliert einen RegEx für den späteren Gebrauch. Mit eval kann man Perl-Code ausführen. IMHOIn my humble oppinion (Meiner Meinung nach) wird das Ergebnis der letzten Zuweisung zurückgeliefert. @_ ist ein Array mit den an eine Funktion übergebenen Parametern, d.h. $_[0] sollte wohl der 1. Parameter sein.

Was das aber nun hier bewirkt, leider (noch) keinen Plan 

lg, Bernd
--
Option Explicit

Sub x()
  Dim re As Object, re2
 
  Set re = CreateObject("jenda.rex")
  Set re2 = re.Prepare("\w")
 
  Debug.Print re.test("2", "\w")
  Debug.Print re2.test("2")
 
  Debug.Print re.eval("{my $s=2; my $x; $x = $s+4;}")

  Set re = Nothing
  Set re2 = Nothing
End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

Win7, ACA2010

erstellt am: 15. Mrz. 2007 22:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für bst 10 Unities + Antwort hilfreich

Abend zusammen :-)

@Roland: Meinte ich ganz global pauschal, hab' aber inzwischen neugierigerweise
bei wiki nachgeguckt;-)

Meinem groben Verständniss nach ist also XHTML eine Erweiterung von HTML,
mit teils variierter Syntax (z.B. das <br /> statt nur <br> oder <BR> in HTML).

Vielleicht hängt ja genau das etwas mit dem oben geposteten RegExp zusammen?
Da dieses ja dann HTML und XHTML in Einem bedienen soll?
(Eine spezielle Trennung zwischen HMTL und XHTML gibts ja nicht bei Jenda -
habe zumindest keinen Button/Code gefunden)

@Bernd: Danke - für's 'Genausosehen';-) *echt gegrübelt hab*
Nach Austausch der \w[\w\d]* in ein simples /w+ hats noch funktioniert:-)
Würde mich ja echt mal interessieren, was in der dll steht ..., ob er das komplett einmal neu
geschrieben hat, also die Definitionen von \w und \d und überhaupt, oder ob er auf irgendewtas aufbaut?
(1x selberschreiben stell' ich mir mordsschwierig vor)

zu 2.) ja - die "" in vba sind meine gaaaanz speziellen Freunde 
Ich versuche da immer, wenn irgendwie geht, nen Riesenbogen drum zu machen ...
Möglicherweise hat das Pattern ja was mit dem  (wie vor) XHTML zu tun - aber echt keine Ahnung,
mich verwirrt es auch nach wie vor.

(Aber nicht alle Codes vom Verfasser sind Gesetz;-)
wenn man also vereinfachendere/logischere Dinge einbringen kann, solange der Gesamtcode noch funktioniert,
warum eigentlich nicht? (bezogen auf opensource)

Die Geschichte mit dem object.eval(uate)("{my $s=2; my $x; $x = $s+4;}") ...,
mal blöde gefragt:
alles was innerhalb der geschweiften Klammern steht ist Perl-Syntax für ein Stringarray in Perl - ja?
[ich kenn' mich ganz dolle aus ;;;-)))))]

Ich denke aber mal, das kann hier manchmal eh' syntaxmässig etwas querbeet gehen,
die vb(a)-rex bilden ja eher einen Randbereich, weswegen die Jenda.Rex wirklich interessant ist :-).

lg Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bst
Mitglied



Sehen Sie sich das Profil von bst an!   Senden Sie eine Private Message an bst  Schreiben Sie einen Gästebucheintrag für bst

Beiträge: 192
Registriert: 31.08.2004

erstellt am: 15. Mrz. 2007 23:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Abend Nancy,

der Sourcecode ist dabei ;-)

Schau Dir mal JendaRex.pm an.

und, nein.

Meine Perl-Kenntnisse sind auch bescheiden, aber IMHOIn my humble oppinion (Meiner Meinung nach) definiert man mit my lokale Variablen. Perl unterscheidet M.E. 3 Variablentypen Skalare, Arrays und Hashes. Diese werden durch vorangestellte Metazeichen identifiziert. $ = Skalar, @=Array, %=Hash. {...} ist ein Block, das Semikolon ist (wie in C) Befehlsende.

{my $s=2; my $x; $x = $s+4;}

wäre also in VBA wohl am ehesten mit sowas vergleichbar:

Function OhneNamen() as Variant
  Dim s as Variant, x as Variant

  s = 2
  x = s + 4
  OhneNamen = x
End Sub

CUSee You, Bernd

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied



Sehen Sie sich das Profil von  an!

Beiträge: 4755
Registriert: 27.09.2000

Dell precision M4300, 4GB Arbeitsspeicher
NVidia FX360M
Windows XP professional SP3
CATIA V5 R16SP9, R17SP8, R18SP8, R19SP6
Adobe Acrobat 8
Linux: Ubuntu 8.04LTS

erstellt am: 16. Mrz. 2007 05:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für bst 10 Unities + Antwort hilfreich

Hallo zusammen,

aus Eurer Diskussion zu JendaRex und dem gemisch von VB, Perl und RegExps halte ich mich mal raus. Dazu kenne ich von VB und Perl zu wenig.


@startrek:
Was XHTML angeht: Nach meinen Informationen ist es keine Erweiterung von HTML, sondern eine Neufassung von HTML in XML DAbei wurde die Sprache stärker formalisiert. Ansonsten ist sie harmlos.

Achso: was hast du eigentlich gegen die niedlichen kleinen Pinguine?

Viele Grüße,

CEROG

------------------
Inoffizielle CATIA-HIlfeseite
CATIA-FAQ
Inoffizielle Linux-Hilfeseite

http://www.cad-gaenssler.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz