Regex++, Appendices.Copyright (c) 1998-2001 Dr John Maddock Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Dr John Maddock makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. |
$B$3$l$O(B boost $B%i%$%V%i%j$X(B regex++ $B$rF3F~$7$?:G=i$N$b$N$G$"$j!"(B regex++ 2.x $B$K4p$E$$$F$$$k!#(B $B0JA0$N%P!<%8%g%s$+$i$NJQ99$N40A4$J%j%9%H$K$D$$$F$O(B changes.txt $B$r8+$h!#(B Win32 $BCO0h2=%b%G%k(B (Win32 $B$K$*$1$k%G%U%)%k%H$N%i%$%V%i%j9=C[(B) $B$,;H$o$l$F$$$k$H$-$N$_!"(BPOSIX $B%9%?%$%k$NEy2A%/%i%9$,@5$7$$$3$H$rJ]>Z$5$l$k!"(B $B$H$$$&E@$r=|$1$P!"5!G=E*$J%P%0$O8+$D$+$C$F$$$J$$!#(B
C++ $B?.
$B%"%k%4%j%:%`$N%Q%U%)!<%^%s%9$OB?$/$N>l9g!"==J,$G$"$k$@$m$&!#(B
$BNc$($P!"(B ftp $B%l%9%]%s%9$NI=8=(B "^([0-9]+)(\-| |$)(.*)$"
$B$,J8;zNs(B "100- this is a line of ftp response which contains a
message string" $B$K0lCW$9$k$N$K$+$+$k;~4V$O(B:
BSD $B$N $B$7$+$7!"0lCWH=Dj$K;X?t%*!<%@$rI,MW$H$9$k!"(B "$BIBE*$J(B"
$B@55,I=8=$,$"$k$3$H$b=R$Y$F$*$+$J$1$l$P$J$i$J$$$@$m$&!#(B
$B$3$l$i$OA4$F!"%M%9%H$5$l$?7+$jJV$71i;;;R$K$^$D$o$k$b$N$G$"$k!#(B
$BNc$($P!"@55,I=8=(B "(a*a)*b" $B$r(B N $BJ8;z$N(B a $B$K0lCW$5$;$k$K$O!"(B
2N $B$KHfNc$7$?;~4V$rI,MW$H$9$k!#(B
$B$3$l$i$NI=8=$O(B $BLdBj$rHr$1$k$?$a$K!"(B($B$[$H$s$I(B) $B$$$D$b!"JL$NJ}K!$G=q$-D>$9$3$H$,=PMh$k!#(B
$BNc$($P!"(B "(a*a)*b" $B$O(B "a*b" $B$H$7$F=q$-D>$9$3$H$,=PMh$k!#(B
$B$3$l$O!"0lCW$r2r7h$9$k$N$K(B N $B$K@~7AE*$KHfNc$7$?;~4V$7$+$+$+$i$J$$!#(B
$B0lHLE*$K!"%M%9%H$5$l$F$$$J$$7+$jJV$7I=8=$O(B N2
$B$KHfNc$9$k;~4V$rI,MW$H$9$k!#(B
$B$7$+$7!"$b$76g$,Aj8_GSB>E*$J$i@~7A%*!<%@$N;~4V$G0lCW$5$;$k$3$H$,2DG=$G$"$k!#(B
$B$3$l$O!"(B"a*b" $B$N>l9g$G$"$k!#$=$l$>$l$NJ8;z$KBP$7$F!"(B
$B0lCWH=Dj$O(B "a" $B$+(B "b" $B$+<:GT$N$$$:$l$+$G$"$k!#(B
$B0lJ}!"(B"a*a" $B$G$O POSIX $B@55,I=8=9=J8$N$$$/$D$+$NE@$O!"$h$jL@3N$K $B%/%i%9(B reg_expression<> $B$H$=$N(B typedef $B$G$"$k(B regex $B$H(B wregex
$B$O%9%l%C%I0BA4@-$r POSIX API $B4X?t$OA4$F:FF~2DG=$G%9%l%C%I%;!<%U$G$"$k!#(B
regcomp $B$rH<$C$F%3%s%Q%$%k$5$l$?@55,I=8=$b0[$J$k%9%l%C%I4V$G6&M-2DG=$G$"$k!#(B $B%/%i%9(B RegEx $B$O$=$l$>$l$N%9%l%C%I$,<+J,$N(B RegEx $B$N%$%s%9%?%s%9$r(B
$B;}$C$F$$$k$H$-$N$_%9%l%C%I%;!<%U$G$"$k(B($BJ,3d%9%l%C%I(B)$B!#(B
$B$3$l$O!"(BRegEx $B$,@55,I=8=$N%3%s%Q%$%k$H0lCWH=Dj$NN>J}$r07$C$F$$$k$+$i$G$"$k!#(B $B:G8e$K!"%0%m!<%P%k%m%1!<%k$rJQ99$9$k$H!"%3%s%Q%$%k$5$l$?A4$F$N@55,I=8=$,L58z$K$J$k$N$G!"(B
$B$"$k%9%l%C%I$,@55,I=8=$r07$C$F$$$k4V$K(B $BJL$N%9%l%C%I$,(B set_locale $B$r8F$S=P$9$H!"(B
$BM=4|$G$-$J$$7k2L$r@8$`(B $B$@$m$&(B $B$H$$$&$3$H$KCm0U$;$h!#(B $B$^$?!"(B main() $B$N3+;O$h$jA0$K$O$?$@$R$H$D$N%9%l%C%I$@$1$,B8:_$9$k!"(B
$B$H$$$&$3$H$,MW5a$5$l$F$$$k!#(B Regex++ $B$O $B%U%m%s%H%(%s%I$NCO0h2=$O%f!<%6$,8+$k$b$N$9$Y$F$r07$&!#(B
$B$D$^$j!"%(%i!<%a%C%;!<%8$d!"@55,I=8=9=J8$=$N$b$N$G$"$k!#(B
$BNc$($P!"%U%i%s%98l$N%"%W%j%1!<%7%g%s$O(B [[:word:]] $B$r(B [[:mot:]] $B$K!"(B
$B$=$7$F(B \w $B$r(B \m $B$KJQ99$9$k$3$H$,=PMh$k$@$m$&!#(B
$B%U%m%s%H%(%s%I$N%m%1!<%k$rJQ99$9$k$3$H$O!"(B
$B3+H/ $B%P%C%/%(%s%I$NCO0h2=$O@55,I=8=$,2r@O$5$l$?8e$K5/$3$kA4$F$N$3$H$r07$&!#(B
$B$D$^$j!"%f!<%6$,8+$J$$!"0?$$$OD>@\4X$o$i$J$$$3$HA4$F$G$"$k!#(B
$B$3$l$O!"BgJ8;z>.J8;z$NJQ49$d!">H9g=g=x!"J8;z%/%i%9$NMWAG$J$I$r$"$D$+$&!#(B
$B%P%C%/%(%s%I$N%m%1!<%k$O3+H/ regex++ $B$,%5%]!<%H$9$k(B3$B$D$N0[$J$kCO0h2=5!9=$,$"$k(B: Win32 localization model. $B$3$l$O%i%$%V%i%j$,(B Win32 $B4D6-$G%3%s%Q%$%k$5$l$?$H$-$N%G%U%)%k%H$N%b%G%k$G$"$k!#(B
$B$=$7$F!"(Bw32_regex_traits
$B$K$h$C$F%+%W%;%k2=$5$l$F$$$k!#(B
$B$3$N%b%G%k$,E,MQ$5$l$F$$$k$H$-$O!"%f!<%6$N%3%s%H%m!<%k%Q%M%k$K=>$C$?M#0l$N(B
$B%0%m!<%P%k%m%1!<%k$,$"$j!"$=$l$O(B GetUserDefaultLCID $B$GJV$5$l$k!#(B
regex++ $B$G;H$o$l$kA4$F$N@_Dj$O(B C $B%i%s%?%$%`%i%$%V%i%j$rDL$5$:!"(B
$B%*%Z%l!<%F%#%s%0%7%9%F%`$+$iD>@\F@$i$l$k!#(B
$B%U%m%s%H%(%s%I$NCO0h2=$O!"%f!<%6Dj5A$NJ8;zNs$r$b$C$?J8;zNs%F!<%V%k$r4^$`%j%=!<%9$G$"$k(B dll
$B$rMW5a$9$k!#(B
$BFC@-%/%i%9$O
static std::string set_message_catalogue(const std::string&
s); $B$3$l$O!"%3!<%I$,2?$i$+$N@55,I=8=$r%3%s%Q%$%k$9$k(B $BA0$K(B
($B$7$+$7!"I,$:$7$b(B reg_expression $B$N%$%s%9%?%s%9$r9=C[$9$kA0$K$G$O$J$$(B)$B!"(B
$B%j%=!<%9$N(B dll $B$NL>A0$r<1JL$9$kJ8;zNs$rH<$C$F8F$S=P$5$l$kI,MW$,$"$k(B: boost::w32_regex_traits<char>::set_message_catalogue("mydll.dll");
$B$3$N(B API $B$,(B w32_regex_traits $B$N%J%m%&J8;z$H%o%$%IJ8;z(B $BN>J}(B
$B$NFC $B$3$N%b%G%k$O8=:_$O!"(B(Windows NT $B$G$N(B SetThreadLocale $B$K$h$k(B)
$B%9%l%C%I$KFC2=$7$?%m%1!<%k$r%5%]!<%H$7$F$$$J$$!#(B
$B%i%$%V%i%j$O(B NT $B$G$N40A4$J%f%K%3!<%I$N%5%]!<%H$rDs6!$9$k!#(B
Windows 9x $B$G$O$3$NG=NO$OB?>/Mn$A$k(B
- 0 $B$+$i(B 255 $B$NJ8;z$O%5%]!<%H$5$l$F$$$k$,!"$=$l0J30$O(B "$BL$CN$N(B" $B%0%i%UJ8;z$H$7$F07$o$l$k!#(B C $BCO0h2=%b%G%k(B $B%i%$%V%i%j$,(B Win32 $B0J30$N%*%Z%l!<%F%#%s%0%7%9%F%`$G%3%s%Q%$%k$5$l$?$H$-!"(B
$B$3$l$,%G%U%)%k%H$N%b%G%k$H$J$k!#$3$l$OFC@-%/%i%9(B
c_regex_traits
$B$K$h$C$F%+%W%;%k2=$5$l$F$$$k!#(B
Win32 $B$N%f!<%6$O%W%j%W%m%;%C%5$G(B BOOST_REGEX_USE_C_LOCALE $B$rDj5A$9$k$3$H$G!"(B
$B$3$N%b%G%k$rM-8z$K$9$k$3$H$,=PMh$k!#(B
$B$3$N%b%G%k$,M-8z$J$H$-!"(Bsetlocale $B$K$h$j@_Dj$5$l$?M#0l$N%0%m!<%P%k%m%1!<%k$,B8:_$9$k!#(B
$BA4$F$N@_Dj$O%i%s%?%$%`%i%$%V%i%j$+$iF@$k$3$H$,=PMh$k$N$G!"(B
$B7k2LE*$K%f%K%3!<%I$N%5%]!<%H$O%i%s%?%$%`%i%$%V%i%j$N static std::string set_message_catalogue(const std::string&
s); $B$3$l$O!"%3!<%I$,2?$i$+$N@55,I=8=$r%3%s%Q%$%k$9$k(B $BA0$K(B
($B$7$+$7!"I,$:$7$b(B reg_expression $B$N%$%s%9%?%s%9$r9=C[$9$kA0$K$G$O$J$$(B)$B!"(B
$B%j%=!<%9$N(B dll $B$NL>A0$r<1JL$9$kJ8;zNs$rH<$C$F8F$S=P$5$l$kI,MW$,$"$k(B: boost::c_regex_traits<char>::set_message_catalogue("mycatalogue");
$B$3$N(B API $B$,(B w32_regex_traits $B$N%J%m%&J8;z$H%o%$%IJ8;z(B $BN>J}(B
$B$NFC setlocale $B$r8F$S=P$9$H!"%3%s%Q%$%k$5$l$?A4$F$N@55,I=8=$,L58z$K$J$k$3$H$KCm0U$9$k$3$H!#(B
setlocale(LC_ALL, "C") $B$r8F$S=P$9$H!"(B
$B%i%$%V%i%j$O!"$3$N%i%$%V%i%j$N%P!<%8%g%s(B 1 $B$r4^$`B?$/$NEAE}E*$J@55,I=8=%i%$%V%i%j$H(B
$BF1$8?6$kIq$$$r$9$k!#(B
C++ localization model.
C++ $BCO0h2=(B $B%b%G%k(B.
$B$3$N%b%G%k$O!"%W%j%W%m%;%C%5%7%s%\%k(B BOOST_REGEX_USE_CPP_LOCALE
$B$rDj5A$7$F%i%$%V%i%j$r%S%k%I$7$?;~$N$_M-8z$G$"$k!#(B
$B$3$N%b%G%k$,M-8z$J$H$-!"(B reg_expression<> $B$N$=$l$>$l$N%$%s%9%?%s%9$O!"(B
$B<+J,<+?H$N(B std::locale $B$N%$%s%9%?%s%9$r;}$D!#(B
$B%/%i%9(B reg_expression<> $B$O%a%s%P4X?t(B imbue $B$b;}$D!#(B
$B$3$l$O!"@55,I=8=$N%m%1!<%k$r%$%s%9%?%s%9$4$H$K@_Dj$9$k$3$H$r2DG=$K$9$k!#(B
$B%U%m%s%H%(%s%I$NCO0h2=$O(B POSIX $B%a%C%;!<%8%+%?%m%0$rI,MW$H$9$k!#(B
$B$3$l$O@55,I=8=$N%m%1!<%k$N(B std::message $B%U%!%;%C%H$K$h$C$FFI$_9~$^$l$k!#(B
$BFC@-%/%i%9$O0J2<$N%7%s%\%k$r(B export $B$9$k(B: static std::string set_message_catalogue(const std::string&
s); $B$3$l$O!"%3!<%I$,2?$i$+$N@55,I=8=$r%3%s%Q%$%k$9$k(B $BA0$K(B
($B$7$+$7!"I,$:$7$b(B reg_expression $B$N%$%s%9%?%s%9$r9=C[$9$kA0$K$G$O$J$$(B)$B!"(B
$B%a%C%;!<%8%+%?%m%0$NL>A0$r<1JL$9$kJ8;zNs$rH<$C$F8F$S=P$5$l$kI,MW$,$"$k(B: boost::cpp_regex_traits<char>::set_message_catalogue("mycatalogue");
reg_expression<>::imbue $B$N8F$S=P$7$O!"$=$N(B reg_expression<>
$B$N%$%s%9%?%s%9$N8=:_%3%s%Q%$%k$5$l$?@55,I=8=$rL58z$K$9$k$3$H$KCm0U$9$k$3$H!#(B
$B$3$N%b%G%k$O(B C++ $BI8=`%i%$%V%i%j$N;WA[$K$b$C$H$b6a$$$b$N$G$"$k!#(B
$B$7$+$7!":G$bCY$$%3!<%I$r@8@.$9$k%b%G%k$G$b$"$k!#(B
$B$=$7$F8=:_$NI8=`%i%$%V%i%j$N $B:G8e$K!"$b$7%i%$%V%i%j$r%G%U%)%k%H0J30$NCO0h2=%b%G%k$G%S%k%I$9$k$J$i!"(B
$B%5%]!<%H%i%$%V%i%j$r%S%k%I$9$k$H$-$K$b!"%3!<%I$K(B <boost/regex.hpp> $B$d(B
<boost/cregex.hpp> $B$r%$%s%/%k!<%I$9$k$H$-$K$b!"(B
$BE,@Z$J%W%j%W%m%;%C%5%7%s%\%k(B (BOOST_REGEX_USE_C_LOCALE $B$d(B
BOOST_REGEX_USE_CPP_LOCALE) $B$rDj5A$7$J$1$l$P$J$i$J$$$3$H$KCm0U$9$k$3$H!#(B
$B$3$l$r3N
$B%a%C%;!<%8%+%?%m%0$NDs6!(B: $B%i%$%V%i%j$N%U%m%s%H%(%s%I$rCO0h2=$9$k$?$a$K$O!"(B
$B%j%=!<%9(B dll $B$NJ8;zNs%F!<%V%k(B (Win32 $B%b%G%k(B) $B$+!"(B
POSIX $B%a%C%;!<%8%+%?%m%0(B (C $B$^$?$O(B C++ $B%b%G%k(B) $B$r4^$s$@!"(B
$B$U$5$o$7$$%a%C%;!<%8J8;zNs$r$b$C$?%i%$%V%i%j$rDs6!$9$kI,MW$,$"$k!#(B
$B8e $B%+%9%?%`$N%(%i!<%a%C%;!<%8$O0J2<$N$h$&$KFI$_9~$^$l$k(B: $B%+%9%?%`$NJ8;z%/%i%9L>$O
$B:G8e$K!"%+%9%?%`$N>H9gMWAGL>$,%a%C%;!<%8(B ID 400 $B$+$i;O$^$C$FFI$_9~$^$l!"(B
$B:G=i$NFI$_9~$_$,$=$N8e<:GT$7$?$H$-$K=*N;$9$k!#(B
$B$=$l$>$l$N%a%C%;!<%8$Otagname $B$O(B [[.tagname.]] $B$NFbB&$G;H$o$l$kL>A0$G$"$j!"(B
string $B$O>H9gMWAG$N POSIX $B$,Dj5A$7$?J8;z%/%i%9L>$H>H9gMWAG$O>o$KMxMQ2DG=$G$"$k$3$H$KCm0U$;$h!#(B
$B$?$H$(%+%9%?%`$NL>A0$,Dj5A$5$l$F$b!"5U$K%+%9%?%`$N%(%i!<%a%C%;!<%8$H(B
$B%+%9%?%`$N9=J8%a%C%;!<%8$O%G%U%)%k%H$N$b$N$GCV$-49$($i$l$k!#(B $B$3$N%i%$%V%i%j$K4X$9$k(B3$B$D$N%G%b%"%W%j%1!<%7%g%s$,$"$k!#(B
Borland, Microsoft, gcc $B%3%s%Q%$%i$N%a%$%/%U%!%$%k$OIUB0$7$F$$$k$,!"(B
$B$=$l0J30$O<+J,$G%a%$%/%U%!%$%k$r:n@.$7$J$1$l$P$J$i$J$$(B $B0lCWH=Dj!"8!:w%"%k%4%j%:%`$r40A4$K;n$9$?$a$N!"B`9T%F%9%H%"%W%j%1!<%7%g%s$G$"$k!#(B
$B$3$N%W%m%0%i%`$,F0$1$P!">/$J$/$H$b$3$l$i$N;n$5$l$?$b$N$,4X$o$k8B$j$O!"(B
$B%i%$%V%i%j$,MW5aDL$j$KF0$/$G$"$m$&$3$H$rJ]>Z$9$k!#(B
$B$b$7C/$+$,!"2?$+;n$5$l$F$$$J$$$b$N$r8+$D$1$?$i!"$=$l$K$D$$$FJ9$1$k$H;d$O$&$l$7$$!#(B Files: parse.cpp, regress.cpp, tests.cpp. $BC1=c$J(B grep $B$N $BC1=c$JBPOC<00lCWH=Dj%"%W%j%1!<%7%g%s!#(B
$BA4$F$N0lCW$N7k2L$,;~4VB,Dj$5$l$k$N$G!"(B
$B%W%m%0%i%^$O%Q%U%)!<%^%s%9$,=EMW$J$H$-$K!"(B
$B@55,I=8=$r:GE,2=$9$k$3$H$,=PMh$k!#(B
Files: regex_timer.cpp.
$BCGJRE*$JNc$O$3$N%I%-%e%a%s%H$G;H$o$l$?%3!<%I$NNc$r4^$s$G$$$k!#(B regex_match_example.cpp:
ftp $B$K4p$E$/(B regex_match $B$NNc(B regex_search_example.cpp:
regex_search $B$NNc(B: cpp $B%U%!%$%k$N%/%i%9Dj5A$r8!:w$9$k!#(B regex_grep_example_1.cpp:
regex_grep $B$NNc(B: cpp $B%U%!%$%k$N%/%i%9Dj5A$r8!:w$9$k!#(B regex_merge_example.cpp:
regex_merge $B$NNc(B: C++ $B%U%!%$%k$r!"9=J8$,%O%$%i%$%H$5$l$?(B HTML $B$KJQ49$9$k!#(B regex_grep_example_2.cpp:
regex_grep $B$NNc(B 2: $B%0%m!<%P%k%3!<%k%P%C%/4X?t$r;H$C$F!"(Bcpp $B%U%!%$%k$N%/%i%9Dj5A$r8!:w$9$k!#(B regex_grep_example_3.cpp:
regex_grep $B$NNc(B 3: $BB+G{$5$l$?%a%s%P4X?t%3!<%k%P%C%/$r;H$C$F!"(Bcpp $B%U%!%$%k$N%/%i%9Dj5A$r8!:w$9$k!#(B regex_grep_example_4.cpp:
regex_grep $B$NNc(B 4: C++ Builder $B$N%/%m!<%8%c$r%3!<%k%P%C%/$H$7$F;H$C$F!"(Bcpp $B%U%!%$%k$N%/%i%9Dj5A$r8!:w$9$k!#(B regex_split_example_1.cpp:
regex_split $B$NNc(B: $BJ8;zNs$r%H!<%/%s$KJ,3d$9$k!#(B regex_split_example_2.cpp:
regex_split $B$NNc(B: $B%j%s%/$5$l$?(B URL $B$rEG$-=P$9!#(B $B$3$N%i%$%V%i%j$,;H$&(B2$B$D$N $B$b$7(B Microsoft $B$+(B Borland C++ $B$r;H$C$F$$$F!"(B
dll $BHG$N%i%s%?%$%`%i%$%V%i%j$K%j%s%/$7$F$$$k$J$i!"(B
regex++ $B$N(B dll $B$N$R$H$D$N%P!<%8%g%s$K$b%j%s%/$7$F$$$k$@$m$&!#(B
$B$3$l$i$N(B dll $B$O:FG[I[2DG=$@$,!"(B "$BI8=`$N(B" $B%P!<%8%g%s$H$$$&$b$N$,B8:_$7$J$$$N$G!"(B
$B%f!<%6$N(B PC $B$K%$%s%9%H!<%k$9$k$H$-!"$3$l$i$r!"(BPC $B$N%G%#%l%/%H%j%Q%9$K$G$O$J$/!"(B
$B%"%W%j%1!<%7%g%s$N%W%i%$%Y!<%H%G%#%l%/%H%j$KCV$/$Y$-$G$"$k!#(B
$B$b$7%9%?%F%#%C%/%P!<%8%g%s$N%i%s%?%$%`%i%$%V%i%j$H%j%s%/$7$F$$$k$J$i!"(B
regex++ $B$H$b%j%s%/$7$F$$$F!"(B dll $B$,G[I[$5$l$kI,MW$O$J$$$@$m$&!#(B
$B2DG=$J(B regex++ dll $B$H%i%$%V%i%j$NL>A0$O$C$FF3$-=P$5$l$k(B: "boost_regex_" $BCm0U(B: $B%7%s%\%k(B BOOST_REGEX_NO_LIB $B$r%3%s%Q%$%k;~$KDj5A$9$k$3$H$G!"(B
$B%i%$%V%i%j$N<+F0A*Br$rIT2DG=$K$9$k$3$H$,=PMh$k!#(B
$B$3$l$O!"%i%s%?%$%`%i%$%V%i%j$N(B dll $B%P!<%8%g%s$r;H$C$F$$$F$b!"(B
$B%9%?%F%#%C%/%j%s%/$r$7$?$$$h$&$J$H$-$d!"(B
regex++ $B$r%G%P%C%0$9$kI,MW$,$"$k$H$-$KLr$KN)$D!#(B
$B$3$N%P!<%8%g%s$N(B regex++ $B$O(B
boost $B%W%m%8%'%/%H$K0\?"$5$l$?:G=i$N$b$N$G$"$j!"(B
$B7k2LE*$K!"(Bboost $B%3!<%G%#%s%0%,%$%I%i%$%s$K=>$&$?$a$K!"(B
$BB?$/$NJQ99$,0Y$5$l$?!#(B $B%X%C%@%U%!%$%k$O(B <header> $B$d(B <header.h> $B$+$i(B
<boost/header.hpp> $B$KJQ99$5$l$?!#(B $B%i%$%V%i%j$NL>A06u4V$O(B "jm" $B$+$i(B
"boost" $B$KJQ99$5$l$?!#(B reg_xxx $B%"%k%4%j%:%`$O(B ($BL>A0IU$1$N0l4S@-$r2~A1$9$k$?$a$K(B) regex_xxx $B$K2~L>$5$l$?!#(B $B%"%k%4%j%:%`(B query_match $B$O(B regex_match $B$K2~L>$5$l$?!#(B
$B$^$?!"@55,I=8=$,F~NOJ8;zNs$NA4BN$K0lCW$9$k$H$-$N$_(B true $B$rJV$9$h$&$K$J$C$?(B
($BF~NO%G!<%?$N8!>Z$r9M$($F$$$k(B)$B!#(B $B4{B8$N%3!<%I$N%3%s%Q%$%k(B: $B%G%#%l%/%H%j(B libs/regex/old_include $B$K$O!"$3$N%P!<%8%g%s$N(B regex++ $B$,(B
$B0JA0$N%i%$%V%i%j$H$N8_49@-$r;}$D$?$a$N%X%C%@%U%!%$%k72$,4^$^$l$F$$$k!#(B
$B$3$N%G%#%l%/%H%j$r%$%s%/%k!<%I%Q%9$KDI2C$9$k$+!"$3$l$i$N%X%C%@%U%!%$%k$r(B
boost $B$r%$%s%9%H!<%k$7$?%k!<%H%G%#%l%/%H%j$K%3%T!<$9$l$P$h$$!#(B
$B$3$l$i$N%X%C%@%U%!%$%k$NFbMF$O?d>)$5$l$F$$$J$$$7!"(B
$B%I%-%e%a%s%H$bDs6!$5$l$F$$$J$$!#(B
$B$3$l$i$OK\Ev$K!"$?$@4{B8$N%3!<%I$N$?$a$@$1$KB8:_$7$F$$$k!#(B
$B?7$7$$%W%m%8%'%/%H$K$O!"?7$7$$%X%C%@7A<0$r;H$&$3$H!#(B $B:n $B;d$O(B Robert Sedgewick $BCx(B "Algorithms in C++"
$B$KBgJQ46$B9M$((B$B$5$;$F$/$l$?!"0J>e!#(B
$B0J2<$N?M!9$O3'!"M-1W$J%3%a%s%H$d=$@5$r$7$F$/$l$?(B:
Dave Abrahams, Mike Allison, Edan Ayal, Jayashree
Balasubramanian, Jan BNvlsche, Beman Dawes, Paul Baxter, David
Bergman, David Dennerline, Edward Diener, Peter Dimov, Robert
Dunn, Fabio Forno, Tobias Gabrielsson, Rob Gillen, Marc Gregoire,
Chris Hecker, Nick Hodapp, Jesse Jones, Martin Jost, Boris
Krasnovskiy, Jan Hermelink, Max Leung, Wei-hao Lin, Jens Maurer,
Richard Peters, Heiko Schmidt, Jason Shirk, Gerald Slacik, Scobie
Smith, Mike Smyth, Alexander Sokolovsky, HervNi Poirier, Michael
Raykh, Marc Recht, Scott VanCamp, Bruno Voigt, Alexey Voinov,
Jerry Waldorf, Rob Ward, Lealon Watts, Thomas Witt and Yuval
Yosef.
$B;d$O$^$?!"(BHenry Spencer $B$N(B Perl and GNU regular expression libraries
$B$K4X$9$k%^%K%e%"%k$K$b46o$K!"$3$l$i$N%i%$%V%i%j!"$=$7$F(B POSIX $BI8=`$H$N8_49@-$rJ]$H$&$H$7$?!#(B
$B$7$+$7%3!<%I$O40A4$K;d<+?H$N$b$N$G$"$j!"%P%0$r4^$s$G$$$k(B!
$B;d$O!";d$,CN$i$J$$$I$s$J%P%0$bD>$9$3$H$,=PMh$J$$$@$m$&$H!"<+?.$r;}$C$FJ]>Z$G$-$k!#(B
$B$@$+$i$b$7!"$"$J$?$,2?$+%3%a%s%H$r$b$C$F$$$?$j!"(B
$B%P%0$rH/8+$7$?$j$7$?$i!"$<$R65$($FM_$7$$!#(B $BLrN)$D>pJs$O99$K!"l=j$GF@$k$3$H$,=PMh$k(B: $B@55,I=8=$K4X$9$k4JC1$J%A%e!<%H%j%"%k$O(B
$B$3$3$G8+$k$3$H$,=PMh$k!#(B Open
Unix Specification $B$O!"@55,I=8=9=J8$d$=$N;EMM(B
<regex.h>$B!"(B
<nl_types.h>
$B$J$I$r4^$`!"LrN)$D;qNA$rB?$/4^$s$G$$$k!#(B
Pattern Matching Pointers
$B%5%$%H$O(B "must visit" $B%Q%?!<%s%^%C%A$K6=L#$r;}$D$b$N$J$iC/$b$,K,$M$J$1$l$P$J$i$J$$>pJs;q8;$G$"$k!#(B Glimpse and Agrep,
$B$O$h$j9bB.$JC5:w;~4V$r Udi Manber $B$H(B
Ricardo Baeza-Yates
$B$ON>J}$H$b!"4XO"$9$k%&%'%V%5%$%H$+$iMxMQ2DG=$J!"(B
$BLrN)$D%Q%?!<%s%^%C%A$NJ8=q$r=8$a$?$b$N$G$"$k!#(B Copyright Dr
John Maddock 1998-2000 all rights reserved.
Japanese Translation Copyright (C) 2003 Kohske Takahashi
$B%*%j%8%J%k$N!"5Z$S$3$NCx:n8"I=<($,A4$F$NJ#@=$NCf$K8=$l$k8B$j!"$3$NJ8=q$N(B
$BJ#@=!"MxMQ!"JQ99!"HNGd$=$7$FG[I[$rG'$a$k!#$3$N%I%-%e%a%s%H$O!V$"$k$,$^$^!W(B
$B$KDs6!$5$l$F$*$j!"$$$+$J$kL@<(E*!"0EL[E*J]>Z$b9T$o$J$$!#$^$?!"(B
$B$$$+$J$kL\E*$KBP$7$F$b!"$=$NMxMQ$,E,$7$F$$$k$3$H$r4XCN$7$J$$!#(B
Appendix 2: $B%9%l%C%I0BA4@-(B
Appendix 3: Localization
$B%a%C%;!<%8(B ID
$B0UL#(B
$B4{DjCM(B
101
$B;RI=8=$N3+;O$K;H$o$l$kJ8;z(B
"("
102
$B;RI=8=$N=*N;$K;H$o$l$kJ8;z(B
")"
103
$B9TKv$NL@<($rI=$9J8;z(B
"$"
104
$B9TF,$NL@<($rI=$9J8;z(B
"^"
105
"$B$"$i$f$kJ8;z$K0lCW$9$kI=8=(B" $B$rI=$9J8;z(B
"."
106
0$B2s0J>e$N0lCW7+$jJV$71i;;;R(B
"*"
107
1$B2s0J>e$N0lCW7+$jJV$71i;;;R(B
"+"
108
0$B$^$?$O(B1$B2s$N0lCW7+$jJV$71i;;;R(B
"?"
109
$BJ8;z=89g$N3+;O(B
"["
110
$BJ8;z=89g$N=*N;(B
"]"
111
$BGSB>1i;;;R(B
"|"
112
$B%(%9%1!<%WJ8;z(B
"\\"
113
$B%O%C%7%eJ8;z(B ($B:#$O;H$o$l$F$$$J$$(B)
"#"
114
$BJ8;zHO0O1i;;;R(B
"-"
115
$B7+$jJV$71i;;;R$N3+;O(B
"{"
116
$B7+$jJV$71i;;;R$N=*N;(B
"}"
117
$B?t;z(B
"0123456789"
118
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-!"C18l$N6-3&$NL@<($rI=$9J8;z(B
"b"
119
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-!"HsC18l$N6-3&$NL@<($rI=$9J8;z(B
"B"
120
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$KC18l$N3+;O$rI=$9J8;z(B
"<"
121
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$KC18l$N=*N;$rI=$9J8;z(B
">"
122
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"$"$i$f$kC18l9=@.J8;z$rI=$9J8;z(B
"w"
123
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"$"$i$f$kHs(B-$BC18l9=@.J8;z$rI=$9J8;z(B
"W"
124
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"%P%C%U%!$N@hF,$NL@<($rI=$9J8;z(B
"`A"
125
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"%P%C%U%!$N=*C<$NL@<($rI=$9J8;z(B
"'z"
126
$B2~9TJ8;z(B
"\n"
127
$B%3%s%^%;%Q%l!<%?(B
","
128
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"%Y%kJ8;z$rI=$9J8;z(B
"a"
129
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"%U%)!<%`%U%#!<%IJ8;z(B(FF)$B$rI=$9J8;z(B
"f"
130
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"2~9TJ8;z$rI=$9J8;z(B
"n"
131
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"I|5"2~9T(B (CR) $BJ8;z$rI=$9J8;z(B
"r"
132
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K%?%VJ8;z$rI=$9J8;z(B
"t"
133
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"?bD>%?%VJ8;z$rI=$9J8;z(B
"v"
134
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B16$B?JDj?t$N3+;O$rI=$9J8;z(B
"x"
135
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B ASCII $B%(%9%1!<%WJ8;z$N3+;O$rI=$9J8;z(B
"c"
136
$B%3%m%s(B
":"
137
$B%$%3!<%k(B
"="
138
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
ASCII $B%(%9%1!<%WJ8;z$rI=$9J8;z(B
"e"
139
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"$"$i$f$k>.J8;z$rI=$9J8;z(B
"l"
140
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B$"$i$f$kHs(B-$B>.J8;z$rI=$9J8;z(B
"L"
141
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B$"$i$f$kBgJ8;z$rI=$9J8;z(B
"u"
142
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B$"$i$f$kHs(B-$BBgJ8;z$rI=$9J8;z(B
"U"
143
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B$"$i$f$k6uGrJ8;z$rI=$9J8;z(B
"s"
144
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B$"$i$f$kHs(B-$B6uGrJ8;z$rI=$9J8;z(B
"S"
145
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B$"$i$f$k?t;z$rI=$9J8;z!#(B
"d"
146
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B$"$i$f$kHs(B-$B?t;z$rI=$9J8;z(B
"D"
147
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B=*N;0zMQId$rI=$9J8;z(B
"E"
148
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B3+;O0zMQId$rI=$9J8;z(B
"Q"
149
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B%f%K%3!<%IJ#9gJ8;z%7!<%1%s%9$rI=$9J8;z(B
"X"
150
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B$"$i$f$kC10lJ8;z$rI=$9J8;z(B
"C"
151
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$B%P%C%U%!=*N;1i;;;R$rI=$9J8;z(B
"Z"
152
$B%(%9%1!<%WJ8;z$KB3$$$?$H$-$K!"(B
$BO"B3$NL@<($rI=$9J8;z(B
"G"
153
(? $B$KB3$$$?$H$-$K%<%mI}$NH]DjA0J}0lCW$NL@<($rI=$9J8;z(B
!
$B%a%C%;!<%8(B ID
$B%(%i!<%a%C%;!<%8(B ID
$B4{DjJ8;zNs(B
201
REG_NOMATCH
"No match"
202
REG_BADPAT
"Invalid regular
expression"
203
REG_ECOLLATE
"Invalid collation
character"
204
REG_ECTYPE
"Invalid character
class name"
205
REG_EESCAPE
"Trailing backslash"
206
REG_ESUBREG
"Invalid back reference"
207
REG_EBRACK
"Unmatched [ or [^"
208
REG_EPAREN
"Unmatched ( or \\("
209
REG_EBRACE
"Unmatched \\{"
210
REG_BADBR
"Invalid content of
\\{\\}"
211
REG_ERANGE
"Invalid range end"
212
REG_ESPACE
"Memory exhausted"
213
REG_BADRPT
"Invalid preceding
regular expression"
214
REG_EEND
"Premature end of
regular expression"
215
REG_ESIZE
"Regular expression too
big"
216
REG_ERPAREN
"Unmatched ) or \\)"
217
REG_EMPTY
"Empty expression"
218
REG_E_UNKNOWN
"Unknown error"
$B%a%C%;!<%8(B ID
$B2r@b(B
$BEy2A$J4{Dj$N%/%i%9L>(B
300
$B1Q?t;z$NJ8;z%/%i%9L>(B
"alnum"
301
$B%"%k%U%!%Y%C%HJ8;z$NJ8;z%/%i%9L>(B
"alpha"
302
$B%3%s%H%m!<%kJ8;z$NJ8;z%/%i%9L>(B
"cntrl"
303
$B?t;z$NJ8;z%/%i%9L>(B
"digit"
304
$B6uGr0J30$N0u;z2DG=J8;z$NJ8;z%/%i%9L>(B
"graph"
305
$B>.J8;z$NJ8;z%/%i%9L>(B
"lower"
306
$B0u;z2DG=J8;z$NJ8;z%/%i%9L>(B
"print"
307
$B6gFIE@$NJ8;z%/%i%9L>(B
"punct"
308
$B6uGrJ8;z$NJ8;z%/%i%9L>(B
"space"
309
$BBgJ8;z$NJ8;z%/%i%9L>(B
"upper"
310
16$B?JJ8;z$NJ8;z%/%i%9L>(B
"xdigit"
311
$B%V%i%s%/J8;z$NJ8;z%/%i%9L>(B
"blank"
312
$BC18l9=@.J8;z$NJ8;z%/%i%9L>(B
"word"
313
$B%f%K%3!<%IJ8;z$NJ8;z%/%i%9L>(B
"unicode"
Appendix 4: $B1~MQNc(B
regress.exe:
jgrep.exe
timer.exe
Appendix 5: $B%X%C%@%U%!%$%k(B
Appendix 6: $B:FG[I[(B
+ BOOST_LIB_TOOLSET
+ "_"
+ BOOST_LIB_THREAD_OPT
+ BOOST_LIB_RT_OPT
+ BOOST_LIB_LINK_OPT
+ BOOST_LIB_DEBUG_OPT
$B$3$l$i$O
BOOST_LIB_TOOLSET: $B%3%s%Q%$%i$N%D!<%k%;%C%H$NL>A0(B (vc6, vc7, bcb5 $B$J$I(B)
BOOST_LIB_THREAD_OPT: "s" $B$O%7%s%0%k%9%l%C%I%S%k%I$rI=$9!#(B
"m" $B$O%^%k%A%9%l%C%I%S%k%I$rI=$9!#(B
BOOST_LIB_RT_OPT: "s" $B$O%9%?%F%#%C%/%i%s%?%$%`$r$"$i$o$9!#(B
"d" $B$O%@%$%J%_%C%/%i%s%?%$%`$rI=$9!#(B
BOOST_LIB_LINK_OPT: "s" $B$O%9%?%F%#%C%/%j%s%/$rI=$9!#(B
"i" $B$O%@%$%J%_%C%/%j%s%/$rI=$9!#(B
BOOST_LIB_DEBUG_OPT: $BL$Dj5A$J$i%j%j!<%9%S%k%I$rI=$9!#(B
"d" $B$O%G%P%C%0%S%k%I$rI=$9!#(B
"dd" $B$O?GCG%G%P%C%0%S%k%I$rI=$9!#(B(_STLP_DEBUG)
$B%"%C%W%0%l!<%I$K4X$9$kCm5-(B
$B$h$jB?$/$N>pJs(B ($BO"Mm$H