This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
vba:tutorials:regexptest [01.12.2015 10:21:32] yaslaw |
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. | ||
===== Patterns bei cRegExp() ===== | ===== Patterns bei cRegExp() ===== | ||
- | Zum Einen muss man natürlich die Regulären Ausdrücke von VBA kennen. Die Seite die mir dabei immer wieder hilft, ist id eoffizielle Seite von Microsoft [[https://msdn.microsoft.com/en-us/library/1400241x%28v=vs.84%29.aspx|Regular Expression Syntax (Scripting) ff.]] | + | Zum Einen muss man natürlich die Regulären Ausdrücke von VBA kennen. Die Seite die mir dabei immer wieder hilft, ist die offizielle Seite von Microsoft [[https://msdn.microsoft.com/en-us/library/1400241x%28v=vs.84%29.aspx|Regular Expression Syntax (Scripting) ff.]] |
- | Zum Anderen natürlich, dass man die Ausdrücke inklusive der Modifiers im Pattern unterbrichen kann. | + | Zum Anderen natürlich, dass man die Ausdrücke inklusive der Modifiers im Pattern unterbringen kann. |
<WRAP box> | <WRAP box> | ||
==== Pattern inkl. Modifiers ==== | ==== Pattern inkl. Modifiers ==== | ||
Line 33: | 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> ( |