6 BRegExp, Forms, Dialogs, SysUtils;
8 // m//k
\82È
\82Ç
\82Å
\88Í
\82Ü
\82ê
\82Ä
\82¢
\82È
\82¢
\90³
\8bK
\95\
\8c»
\82ð
\90³
\82µ
\82
\88Í
\82ñ
\82Å
9 // BRegExp
\83G
\83\89\81[
\82Ì
\94
\90¶
\82ð
\96h
\82®
10 function SafeAndCheckRegExp(var ioStrExpression: String): String;
12 //
\8fã
\82Ì
\8aÖ
\90\94\82Å
\8e©
\93®
\93I
\82É
\88Í
\82ñ
\82¾
\95¶
\8e\9a\97ñ
\82ð
\82»
\82Ì
\82Ü
\82Ü
\89æ
\96Ê
\95\
\8e¦
\82·
\82é
\82Æ
\95Ï
\82È
\82Ì
\82Å
13 //
\8dÄ
\93x
\83t
\83B
\83\8b\83^
\82µ
\82Ä
\8en
\96\96\82·
\82é
\82½
\82ß
\82Ì
\8aÖ
\90\94
14 //
\91O
\8cã
\82Ì 'm'#255
\82Æ #255'k'
\82ð
\8eæ
\82è
\8f\9c\82¢
\82Ä
\95Ô
\82·
15 function FilterAutoRegExp(const Expression: String): String;
17 // s///
\82Ì
\90³
\8bK
\95\
\8c»
\82ð
\8dì
\82Á
\82Ä
\83`
\83F
\83b
\83N
\82·
\82é
18 function SafeAndCheckRegExpSubst(Before, After: String;
19 Flags: TReplaceFlags; out Expression: String): String;
21 //
\90³
\8bK
\95\
\8c»
\94ÅStringReplace
\81BOldPattern
\82É
\90³
\8bK
\95\
\8c»
\82ª
\8eg
\82¦
\81A
22 // NewPattern
\82É\1, \2
\82È
\82Ç
\82ª
\8eg
\82¦
\82é
\88È
\8aO
\82Í
\81A
23 // SysUtils.StringReplace
\8aÖ
\90\94\82Æ
\82Ù
\82Æ
\82ñ
\82Ç
\93¯
\82¶
\82æ
\82¤
\82É
\93®
\8dì
\82·
\82é
24 function StringReplaceRegExp(const S, OldPattern, NewPattern: string;
25 Flags: TReplaceFlags): String;
32 //
\90³
\8bK
\95\
\8c»
\83`
\83F
\83b
\83N
\82Æ
\95Ï
\8dX
33 //
\96ß
\82è
\92l
\81\81\83G
\83\89\81[
\83\81\83b
\83Z
\81[
\83W
\81i
\90³
\8fí
\8e\9e\82Í
\8bó
\81j
34 function SafeAndCheckRegExp(var ioStrExpression: String): String;
38 RegExp.Match(ioStrExpression,' ');
42 ioStrExpression := 'm'#255 + ioStrExpression + #255'k';
44 RegExp.Match(ioStrExpression, ' ');
46 on E: EBRegExpError do
53 //
\8e©
\93®
\91}
\93ü
\82µ
\82½
\90³
\8bK
\95\
\8c»
\8ew
\8e¦ m[0xFF][0xFF]k
\82Ì
\8f\9c\8b\8e
54 function FilterAutoRegExp(const Expression: String): String;
58 if RegExp.Match('m/m'#255'(.*)'#255'k/k', Result) then begin
59 Result := Copy(Result, 3, Length(Result) - 4);
62 on EBRegExpError do ; //NOOP
66 function SafeAndCheckRegExpSubst(Before, After: String;
67 Flags: TReplaceFlags; out Expression: String): String;
72 Expression := 's'#255 + Before + #255 + After + #255'k';
73 if rfIgnoreCase in Flags then
74 Expression := Expression + 'i';
75 if rfReplaceAll in Flags then
76 Expression := Expression + 'g';
79 RegExp.Subst(Expression, Dummy);
81 on E: EBRegExpError do
88 function StringReplaceRegExp(const S, OldPattern, NewPattern: string;
89 Flags: TReplaceFlags): String;
93 Err := SafeAndCheckRegExpSubst(OldPattern, NewPattern, Flags, Pattern);
95 raise EBRegExpError.Create(Err);
97 RegExp.Subst(Pattern, Result);
103 RegExp := TBRegExp.Create;
105 ShowMessage('RegExp.dll
\8aJ
\8en
\83G
\83\89\81[');
106 Application.Terminate;