1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
|
Allgemeine Funktion FindEmailInString (StringToSearch als Schnur) als Schnur
Schwaches sExp als Schnur
sExp = „\ b [A-Z0-9. _%+-] +@ [A-Z0-9. -] + \. [A-Z] {2.4} \ b“
FindEmailInString rgxExtract (StringToSearch, sExp)
Enden-Funktion
Allgemeines Funktion rgxExtract (wahlweise freigestelltes ByVal Ziel als Variante, _
Wahlweise freigestelltes Muster als Schnur = "", _
Wahlweise freigestelltes ByVal Einzelteil als lang = 0, _
Wahlweise freigestelltes CaseSensitive, wie Boolesch = falsch, _
Wahlweise freigestelltes FailOnError, wie Boolesch = richten, _ aus
Wahlweise freigestellt als Boolesches = falsches) _ fortbestehen
Als Variante
'Zusammenpassende Funktion des regulären Ausdrucks verwendbar für Gebrauch
'in VB/A im Allgemeinen und in den Zugangsfragen.
'Durch John Nurick. Modernisiertes 14. Januar 06.
'Nimmt eine Suchschnur (Ziel) und einen regulären Ausdruck
'(Muster) und ein wahlweise freigestelltes Einzelteilargument.
'- Wenn Einzelteil ausgelassen wird und eine Teilkette des Ziels Muster zusammenbringt,
' Rückkehr die Teilkette.
'- Wenn Muster die Gruppierung von Klammern umfaßt, eine Teilkette des Ziels
' bringt Muster zusammen und Einzelteil ist eine ganze Zahl, zurückbringt das submatch
' spezifiziert durch Item (erstes submatch ist Einzelteil 0). Wenn es nicht gibt
' genügende submatches, Rückkehr Null. Negative Werte des Einzelteilanfangs
', zählend mit dem letzten submatch.
'- Wenn kein Gleiches, Rückkehr Null.
'- Rückkehr Null auf Störung, es sei denn FailOnError zutreffend ist.
' Passt immer an das gesamte Ziel an (d.h. global und
' Mehrkanal zutreffend sein).
'CaseSensitive Gleiche unabhängig davon Fall.
'Bestehen Kontrollen ob der kompilierte RegExp Gegenstand weiter
'bleibt im Gedächtnis, das zum folgenden Anruf zu bereit ist
'Funktion oder, ob sie sofort entledigt wird. Dieses
'bedeutet, dass die Funktion in den Fragen ohne zu haben verwendet werden kann
'zu verursachen, einen neuen RegExp Gegenstand für kompilieren, benutzen und zerstören
'jede Reihe, die verarbeitet wird. Aber es bedeutet auch dass der Gegenstand
'Überreste im Gedächtnis nach der Frage ist gelaufen. Zu zerstören
'das Gedächtnis einwenden und freigeben, benennen diese Funktion eine
'letztes Mal ohne Argumente.
'
', die Funktion mit verschiedenen Argumenten benennend (z.B. ein neues
'Muster) recompiles den RegExp Gegenstand, so
'die Funktion kann in den verschiedenen Fragen verwendet werden. Jedoch dort
'sein können Probleme, wenn zwei Gewinde die Funktion an benennen
'die gleiche Zeit.
Const rgxPROC_NAME = „rgxExtract“
Statisches Erz als Gegenstand 'VBScript_RegExp_55.RegExp
'Statische Erklärungmittel müssen wir nicht verursachen
'und den RegExp Gegenstand jede einzelne Zeit kompilieren
'die Funktion wird benannt.
Schwache oMatches als Gegenstand 'VBScript_RegExp_55.MatchCollection
Auf Störung Goto- ErrHandler
rgxExtract = Null-'Rückstellungsrückholwert
'Notiz:: wenn FailOnError falsch ist, bringt Null auf Störung zurück
Wenn IsMissing (Ziel) dann
'Dieses ist das Signal, sich Erz zu entledigen
Erz einstellen = nichts
Funktion 'mit Default-Wert herausnehmen
Beenden wenn
'Den RegExp Gegenstand wenn notwendig verursachen
Wenn Erz nichts dann ist
Erz = CreateObject („VBScript.Regexp“) einstellen
Beenden wenn
Mit Erz
'Überprüfen, ob die gegenwärtigen Argumente (anders als Ziel)
'zu denen unterschiedlich sein, die im Erz gespeichert werden, und sie aktualisieren
'(dadurch recompiling das regex) nur wenn notwendig.
Wenn CaseSensitive = .IgnoreCase dann
.IgnoreCase = nicht .IgnoreCase
Beenden wenn
. Global = ausrichten
. Mehrkanal = ausrichten
' Wenn Mehrkanal <> . Mehrkanal dann
' . Mehrkanal- = Mehrkanal
' Beenden wenn
Wenn Muster <> . Muster dann
. Muster = Muster
Beenden wenn
'Schließlich, das Gleiche durchführen
Wenn IsNull (Ziel) dann
rgxExtract = Null
Sonst
oMatches = oRE.Execute (Ziel) einstellen
Wenn oMatches.Count > 0 dann
Wenn oMatches (0) .SubMatches.Count = 0 dann
'Keine () Gruppe im Muster: das Gleiche zurückbringen
Wenn Einzelteil < 0="" Then="">= oMatches.Count
'Positives Einzelteil überstieg die Zahl der Gleicher
rgxExtract = Null
Wenn FailOnError dann
Err.Raise 9
Beenden wenn
Sonst umkleiden
rgxExtract = oMatches (Einzelteil)
Ende auserwählt
Sonst 'es gibt eine oder mehrere () gefangengenommenen Gruppen im Muster
'das zurückbringen, das von Item spezifiziert wird
Mit oMatches (0) .SubMatches
Wenn Einzelteil < 0="" Then="">=. Zählimpuls
'Positives Einzelteil überstieg die Zahl submatches
rgxExtract = Null
Wenn FailOnError dann
Err.Raise 9
Beenden wenn
'Gültige Einzelteilzahl sonst umkleiden
rgxExtract =. Einzelteil (Einzelteil)
Ende auserwählt
Ende mit
Beenden wenn
Sonst
rgxExtract = Null
Beenden wenn
Beenden wenn
Mit beenden
'Aufräumen und normaler Ausgang
Wenn, nicht dann fortzubestehen Erz = nichts einstellte
Funktion herausnehmen
ErrHandler:
Wenn FailOnError dann
Mit sich irren
Fall vorwählen. Zahl
'Die Mitteilung „der Gegenstand-definierten Störung“ der Rückstellung ersetzen
Rechtssache 9: . Beschreibung = „Tiefzeichen aus Strecke (das Einzelteilzahl erbetene“ _ heraus
u. „war grösser als die Zahl der gefundenen Gleichen oder als die Zahl von“ _
u. „(...) Gruppierung/, die gefangennimmt Klammern im Muster).“
Rechtssache 13: . Beschreibung = „Art Fehlanpassung, vermutlich, weil“ _
u. „das "" Ziel "" Argument konnte nicht in eine Schnur umgewandelt werden“
Rechtssache 5017: . Beschreibung = „Syntaxstörung im regulären Ausdruck“
Rechtssache 5018: . Beschreibung = „unerwarteter Quantifizierer im regulären Ausdruck“
Rechtssache 5019: . Beschreibung = „erwartet worden „]“ im regulären Ausdruck "
Rechtssache 5020: . Beschreibung = „erwartet ")“ im regulären Ausdruck "
Fall sonst
Wenn Erz nichts 'Regexp Gegenstand verursachen dann nicht gekonnt ist
. Beschreibung = „konnte VBScript.RegExp Gegenstand nicht verursachen. “ U. Err.Description
Sonst 'unerwartete Störung
. Beschreibung = rgxPROC_NAME u. „: “ u. Beschreibung
Beenden wenn
Auserwähltes beenden
Erz einstellen = nichts
. Err.Number, rgxPROC_NAME, _ anheben
rgxPROC_NAME u. „(): “ u. Beschreibung
Ende mit
Sonst 'Ausfallen still
Err.Clear
Erz einstellen = nichts
Beenden wenn
Funktion beenden
|