Regexp$B$N;EMM$K$D$$$F(B

e$BC.2H$G$9!#e(B

[ruby-dev:41246]
e$B$+$i$G!“e(BRegexpe$B$N;EMM$K$D$$$F$G$9$,!”$I$3$r$_$l$P$$$$$N$+J,$+$i$:!"e(B
e$B0J2<$K$D$$$F;EMM$J$N$+%P%0$J$N$+H=CG$,IU$-$^$;$s!#e(B
e$B$=$l$>$l$I$&$J$s$G$7$g$&$+!)e(B

p /(?a)(b)/.match(“ab”).to_a

=> [“ab”,“a”]

p [$~[“a”],$1,$2]

=> [“a”,“a”,nil]

p Regexp.union(/(a)b/,/(b)c\1/).match(“bcb”).to_a

=> []

p Regexp.union(/(?a)b/,/(b)c\1/).match(“ab”).to_a rescue p $!

=> #<RegexpError: numbered backref/call is not allowed. (use name):


p Regexp.union(/(?a)b/,/(?b)c\g/).match(“ab”).to_a rescue p $!

=> #<RegexpError: multiplex definition name call: …

e$B>/$J$/$H$bF|K\8l%^%K%e%"%k$Ne(BRegexp#unione$B$G=q$+$l$F$$$ke(B
e$B!V0z?t$H$7$FM?$($?e(B pattern e$B$rA*Bre(B | e$B$GO"7k$7!“e(BRegexp
e$B$H$7$FJV$7$^$9!#7k2L$Ne(B Regexp e$B$OM?$($?e(B pattern
e$B$N$I$l$+$K%^%C%A$9$k>l9g$K%^%C%A$9$k$b$N$K$J$j$^$9!#e(B e$B!We(B
e$B$N$&$A!”!V7k2L$Ne(B Regexp e$B$OM?$($?e(B pattern
e$B$N$I$l$+$K%^%C%A$9$k>l9g$K%^%C%A$9$k$b$N$K$J$j$^$9!#!W$O:#$N$H$3$m13$K8+$($^$9!#e(B

e$B8D?ME*$K$O;H$C$?;v$N$J$$%a%=%C%I$G$9$,!"$o$6$o$6%a%=%C%I$K$7$F$$$k$+$i$K$O8eJ};2>H$J$I$r$&$^$/=hM}$7$FM_$7$$$+$J$H$b;W$$$^$9!#e(B

2010e$BG/e(B5e$B7ne(B10e$BF|e(B12:36 Masaya TARUI [email protected]:

[ruby-dev:41246] e$B$+$i$G!“e(BRegexpe$B$N;EMM$K$D$$$F$G$9$,!”$I$3$r$_$l$P$$$$$N$+J,$+$i$:!"e(B
e$B0J2<$K$D$$$F;EMM$J$N$+%P%0$J$N$+H=CG$,IU$-$^$;$s!#e(B

e$B8=>u!"e(BRegexp.union e$B$O8eJ};2>H$r9MN8$7$F$$$^$;$s!#e(B

e$B;d$NCN$k8B$j!“$=$l$r9MN8$9$k$h$&$K$9$k7W2h$O$”$j$^$;$s!#e(B

e$B$=$l$r9MN8$9$k$K$O!“>/$J$/$F$b@55,I=8=$NCf?H$r$”$kDxEYM}2r$7$J$$$H$$$1$J$$e(B
e$B$N$G!"$J$+$J$+$?$$$X$s$J5$$,$7$^$9!#e(B

2010e$BG/e(B5e$B7ne(B10e$BF|e(B13:23 Tanaka A. [email protected]:

e$B$N$G!“$J$+$J$+$?$$$X$s$J5$$,$7$^$9!#e(B
e$B7W2h$O$J$$$H$7$F!”;EMM$J$N$G$7$g$&$+!)%P%0$J$N$G$7$g$&$+!)e(B

  1. e$B%P%0$G$"$k!#$,e(BWONTFIXe$B$b$7$/$O%Q%C%A4?7^e(B?
    =>
    e$B%P%0$N$^$^%j%j!<%9$9$ke(B(e$B$7$F$$$ke(B)e$B$J$i%I%-%e%a%s%H$KCm<ae(B

  2. e$B8eJ};2>H$r5v$5$J$$$N$,;EMMe(B
    => e$B%I%-%e%a%s%H%P%0!#$5$i$K8eJ};2>H$r4^$`;~$KNc30$r=P$9$Y$-!)e(B

  3. e$B8eJ};2>H$,F~$k$HF0:nL$Dj5A$,;EMMe(B
    => e$B%I%-%e%a%s%H%P%0e(B

e$BA0=R$7$^$7$?$,8D?ME*$K$Oe(B1e$B$,9%$^$7$$$H;W$C$F$$$^$9!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:41249] Re: Regexpe$B$N;EMM$K$D$$$Fe(B”
on Mon, 10 May 2010 20:39:03 +0900, Masaya TARUI [email protected]
writes:

|e$B7W2h$O$J$$$H$7$F!“;EMM$J$N$G$7$g$&$+!)%P%0$J$N$G$7$g$&$+!)e(B
|
|1) e$B%P%0$G$”$k!#$,e(BWONTFIXe$B$b$7$/$O%Q%C%A4?7^e(B?
|=> e$B%P%0$N$^$^%j%j!<%9$9$ke(B(e$B$7$F$$$ke(B)e$B$J$i%I%-%e%a%s%H$KCm<ae(B
|
|2) e$B8eJ};2>H$r5v$5$J$$$N$,;EMMe(B
|=> e$B%I%-%e%a%s%H%P%0!#$5$i$K8eJ};2>H$r4^$`;~$KNc30$r=P$9$Y$-!)e(B
|
|3) e$B8eJ};2>H$,F~$k$HF0:nL$Dj5A$,;EMMe(B
|=> e$B%I%-%e%a%s%H%P%0e(B
|
|e$BA0=R$7$^$7$?$,8D?ME*$K$Oe(B1e$B$,9%$^$7$$$H;W$C$F$$$^$9!#e(B

e$B;DG0$J$,$i8=;~E@$G$Oe(B(3)e$B$G$9$M!#$?$@$7!“%Q%C%A$,EP>l$9$k$J$Ie(B
e$B>u67$,JQ$o$l$P!”$3$NH=CG$bJQ2=$9$k$H;W$$$^$9!#e(B

e$B@.@%$G$9!#e(B

(2010/05/10 20:39), Masaya TARUI wrote:

e$B$=$l$r9MN8$9$k$K$O!">/$J$/$F$b@55,I=8=$NCf?H$r$"$kDxEYM}2r$7$J$$$H$$$1$J$$e(B

  1. e$B8eJ};2>H$,F~$k$HF0:nL$Dj5A$,;EMMe(B
    => e$B%I%-%e%a%s%H%P%0e(B

e$BA0=R$7$^$7$?$,8D?ME*$K$Oe(B1e$B$,9%$^$7$$$H;W$C$F$$$^$9!#e(B

e$B7kO@$+$i8@$($Pe(B 3) e$B$+$H;W$$$^$9!#e(B
e$B$=$b$=$b$N!Ve(BMRI
e$B$N;EMM!W$H$O2?$+$H$$$&$N$OFq$7$$LdBj$@$H;W$$$^$9$,!“e(B
e$B%3!<%I$de(B rdoc e$B$NGX7J$K$”$k0U?^$H$7$^$7$g$&$+!#e(B
e$B$=$N>l9g!"!VFC$K0U?^$O$J$$$,8=>u$O$=$&$J$C$F$$$k!W$J$N$GK]Lu$9$k$H!“e(B
e$B!VF0:nL$Dj5A!W$K$J$k$h$&$J5$$b$7$^$9!#e(B
e$B$b$C$H$b!”<BAu8_49@-$b$?$^$K9MN8$7$?$j$9$k$N$G!":#$NJQ$JF0$-$,e(B
e$B!V;EMM!W$H8@$($J$/$b$"$j$^$;$s!#e(B

e$B0lJ}$G!“e(BMRI
e$B$N>l9gF0:nL$Dj5A$KBP$7$F$O;EMM%P%0$G$”$k$H$$$&<gD%$,DL$j$d$9$$e(B
e$B5$$b$9$k$N$G!“e(B1)
e$B$K6a$$>l9g$b$”$j$^$9!#e(B(e$B<BAu8_49@-$r<i$kI,MW$,$J$5$=$&$J>l9ge(B)

e$B:#2s$N>l9g!"C/$+$,$=$l$C$]$$%f!<%9%1!<%9$H%Q%C%A$rMQ0U$9$l$P!“e(B
1.9.3 e$B$+$iJQ$o$k$H$$$&$N$O$”$j$=$&$JOC$G$9!#e(B

e$BC.2H$G$9!#e(B

e$B7kO@$+$i8@$($Pe(B 3) e$B$+$H;W$$$^$9!#e(B
e$B$=$b$=$b$N!Ve(BMRI e$B$N;EMM!W$H$O2?$+$H$$$&$N$OFq$7$$LdBj$@$H;W$$$^$9$,!“e(B
e$B%3!<%I$de(B rdoc e$B$NGX7J$K$”$k0U?^$H$7$^$7$g$&$+!#e(B
e$B$=$N>l9g!"!VFC$K0U?^$O$J$$$,8=>u$O$=$&$J$C$F$$$k!W$J$N$GK]Lu$9$k$H!“e(B
e$B!VF0:nL$Dj5A!W$K$J$k$h$&$J5$$b$7$^$9!#e(B
e$B$b$C$H$b!”<BAu8_49@-$b$?$^$K9MN8$7$?$j$9$k$N$G!":#$NJQ$JF0$-$,e(B
e$B!V;EMM!W$H8@$($J$/$b$"$j$^$;$s!#e(B

e$B0lJ}$G!“e(BMRI e$B$N>l9gF0:nL$Dj5A$KBP$7$F$O;EMM%P%0$G$”$k$H$$$&<gD%$,DL$j$d$9$$e(B
e$B5$$b$9$k$N$G!“e(B1) e$B$K6a$$>l9g$b$”$j$^$9!#e(B(e$B<BAu8_49@-$r<i$kI,MW$,$J$5$=$&$J>l9ge(B)

e$BGX7J$H8@$o$l$k$H$o$+$i$J$$$N$G$9$,e(Brdoce$B$NI=$K$"$i$o$l$F$k0U?^$H$7$F$O!"e(B

Return a Regexp object that is the union of the given patterns, i.e.,
will match any of its parts. The patterns can be Regexp objects, in
which case their options will be preserved, or Strings. If no
arguments are given, returns /(?!)/.

e$BFC$Ke(B"match any of its
parts"e$B$@$H;W$&$N$G$9$,!"8D!9$G@5$7$$@55,I=8=$re(BRegexp#unione$B$G9g$o$;$Fe(Bmatch
any of its parts
e$B$r<B8=$G$-$F$$$J$$$N$,%P%0$G$O$J$$$+$H;W$C$?$N$G$9!#e(B

e$B$A$J$$K%3!<%I$r3NG’$7$F0J2<$N$h$&$J%3!<%J!<%1!<%9$r=q$$$F$$^$7$?!#e(B
a=/#{"(a)"*9}/
b=/(b)\10/
c=/©/
[
b,
Regexp.union(a,b,c),
Regexp.union(b,a,c),
Regexp.union(a,c,b)
].each{|re|
p [re === “b\10”,re === “bb”]
}
e$B7k2L$Oe(B
[true, false]
[false, true]
[true, false]
[false, false]
e$B$K$J$j$^$9!#e(B

e$B8=<BE*$J%3!<%I$G$O$J$$$b$N$N!"$d$O$j$3$l$,;EMM$@$H$$$o$l$k$H$7$C$/$j$3$J$$$b$N$,$"$j$^$9!#e(B
e$B<g4QE*$J$b$N$J$N$G!“6&46$,F@$i$l$k$+$I$&$+$@$1$G$9$,!”$=$s$J$3$H$O$J$$$G$7$g$&$+!)e(B

e$B$?$@!“e(BKNOWNBUG
e$B$K$7$H$/$h$j;EMM$H$7$F$*$/;v$NMxE@$b@bF@$5$l$?;v$G$9$7!“FC$K%f!<%9%1!<%9$,$”$k$o$1$G$b$J$$$N$G!”!IBgB??t$NMQES!I$Ge(B"match
any of its parts"e$B$G$"$k;v$,;EMM$@$H$$$&$J$i!"e(Brdoc
e$B$H<BAu$,9g$C$F$$$l$P$=$l$O$=$l$GN;2r$G$9!#e(B

#e$B%^%K%e%"%k$Ne(Btrape$B$K$O5-:$7$F$[$7$$$G$9$,$=$&$$$&$N$O$I$3$K8@$($P$$$$$s$G$7$g$&$+!)e(B

e$B:#2s$N>l9g!"C/$+$,$=$l$C$]$$%f!<%9%1!<%9$H%Q%C%A$rMQ0U$9$l$P!“e(B
1.9.3 e$B$+$iJQ$o$k$H$$$&$N$O$”$j$=$&$JOC$G$9!#e(B

e$BLdBj$K$7$F$$$k$N$O%I%-%e%a%s%H$HF0:n$,?)$$0c$C$F$$$kE@$Ge(B(1)e$B$,$$$$$H$$$&$N$O$"$/$^$G4uK>$J$N$G!"e(B
e$B$=$l$K$D$$$F$O$b$72>$K$$$$%Q%C%A$,MQ0U$G$-$?$ie(BFeaturee$B$G%A%1%C%H$r$-$C$F$_$k;v$K$7$^$9!#e(B