User Tools

Site Tools


vba:tutorials:regexptest

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
vba:tutorials:regexptest [01.12.2015 10:05:06]
yaslaw created
vba:tutorials:regexptest [14.09.2017 11:33:39] (current)
yaslaw [Patterns bei cRegExp()]
Line 1: Line 1:
 ====== [VBA] RegExp testen im Direktfenster ====== ====== [VBA] RegExp testen im Direktfenster ======
-Einfaches Testen ​unt Entwerfen von Regulären Pattern im Direktfenster+Einfaches Testen ​und Entwerfen von Regulären Pattern im Direktfenster.
  
 Um reguläre Ausdrücke zu erstellen, muss ich immer diverse Proberunden machen, bis sie wirklich das ausgeben, was ich haben will. Dazu verwende ich meine 2 Funktionen [[vba:​cast:​cregexp|cRegExp()]] und [[vba:​functions:​print_r:​index|print_r()]]. Mit diesen Zwei in Kombination lässt sich einfach im Direktfenster die Resultate eines RegExp testen. Um reguläre Ausdrücke zu erstellen, muss ich immer diverse Proberunden machen, bis sie wirklich das ausgeben, was ich haben will. Dazu verwende ich meine 2 Funktionen [[vba:​cast:​cregexp|cRegExp()]] und [[vba:​functions:​print_r:​index|print_r()]]. Mit diesen Zwei in Kombination lässt sich einfach im Direktfenster die Resultate eines RegExp testen.
Line 6: Line 6:
 [[vba:​cast:​cregexp|cRegExp()]] akzeptiert analog zu PHP Patterns inklusive Modifiers. [[vba:​cast:​cregexp|cRegExp()]] akzeptiert analog zu PHP Patterns inklusive Modifiers.
  
 +> Neu. Seit print_r() Version 2.10.0 sind beide Funktion in der Methode [[vba:​functions:​print_r:​index#​drx|dRx()]] zusammengefasst.
  
-===== Aus der Doku von cRegExp() ===== +===== Patterns bei cRegExp() ===== 
-Nochmals kurz als Erinnerungdas Setting +Zum Einen muss man natürlich die Regulären Ausdrücke von VBA kennen. Die Seite die mir dabei immer wieder hilftist die offizielle Seite von Microsoft [[https://​msdn.microsoft.com/​en-us/​library/​1400241x%28v=vs.84%29.aspx|Regular Expression Syntax (Scripting) ff.]] 
-<wrap box>+ 
 +Zum Anderen natürlich, dass man die Ausdrücke inklusive der Modifiers im Pattern unterbringen kann. 
 +<WRAP box>
 ==== Pattern inkl. Modifiers ==== ==== Pattern inkl. Modifiers ====
 Die Suchstrings können als Reguläre Ausdrücke daherkommen. Dazu müssen sie wie in PHP für preg_match() mittels Delemiter und Modifiers formatiert werden. Die Suchstrings können als Reguläre Ausdrücke daherkommen. Dazu müssen sie wie in PHP für preg_match() mittels Delemiter und Modifiers formatiert werden.
Line 23: Line 26:
   ***g** Global   ***g** Global
   ***m** Multiline   ***m** Multiline
-</wrap>+</WRAP>
  
 Damit kann man die ganzen Settings in eine Ziele schreiben. ALso genau dass, was wir brauchen um im Direktfenster zu üben. Damit kann man die ganzen Settings in eine Ziele schreiben. ALso genau dass, was wir brauchen um im Direktfenster zu üben.
Line 31: Line 34:
 <code vb>'​Der Pattern ^([^\d]*[\.a-z])\s*(.*) mit dem Modifier IgnoreCase <code vb>'​Der Pattern ^([^\d]*[\.a-z])\s*(.*) mit dem Modifier IgnoreCase
 print_r cregexp("/​^([^\d]*[\.a-z])\s*(.*)/​i"​).execute("​Haupt-Str. 11a") print_r cregexp("/​^([^\d]*[\.a-z])\s*(.*)/​i"​).execute("​Haupt-Str. 11a")
 +<​IMatchCollection2> ​ (
 +    [0] => <​IMatch2> ​ (
 +        [Match] => <​String>​ '​Haupt-Str. 11a'
 +        [FirstIndex] => <​Long>​ 0
 +        [SubMatches] => <​ISubMatches> ​ (
 +            [0] => <​String>​ '​Haupt-Str.'​
 +            [1] => <​String>​ '​11a'​
 +        )
 +    )
 +)
 +
 +'Mit dRx()
 +dRx "/​^([^\d]*[\.a-z])\s*(.*)/​i",​ "​Haupt-Str. 11a"
 <​IMatchCollection2> ​ ( <​IMatchCollection2> ​ (
     [0] => <​IMatch2> ​ (     [0] => <​IMatch2> ​ (
vba/tutorials/regexptest.1448960706.txt.gz · Last modified: 01.12.2015 10:05:06 by yaslaw