Char-UHC
view release on metacpan or search on metacpan
4964974984995005015025035045055065075085095105115125135145155160.46 2009-12-02 00:00:00
- fix bug of
split
q//
- created by INABA Hitoshi
0.45 2009-11-30 00:00:00
- fix bug of Esjis::
split
when
string is empty
- created by INABA Hitoshi
0.44 2009-11-16 00:00:00
- support
given
and
when
keywords
- support \gN, \g{N}, and \g{-N} in s///
- support stacked filetest operators
- created by INABA Hitoshi
0.43 2009-10-12 00:00:00
- support UTF-2 (aka UTF-8)
- fix bug of
join
separated multiple octet of EUCJP, INFOMIXV6ALS, and GB18030
- created by INABA Hitoshi
0.42 2009-09-28 00:00:00
- rewrite
split
(m/^/) to
split
(m/^/m) on any version of perl
lib/Euhc.pm view on Meta::CPAN
96919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713
return
join
''
,
$ope
,
$delimiter
,
$prematch
,
'(?:'
,
$string
,
')'
,
$matched
,
$end_delimiter
,
$modifier
;
}
my
$ignorecase
= (
$modifier
=~ /i/oxms) ? 1 : 0;
my
$metachar
=
qr/[\@\\|[\]{^]/
oxms;
# split regexp
my
@char
=
$string
=~ /\G((?>
[^\x81-\xFE\\\$\@\[\(]|[\x81-\xFE][\x00-\xFF] |
\\ (?>[1-9][0-9]*) |
\\g (?>\s*) (?>[1-9][0-9]*) |
\\g (?>\s*) \{ (?>\s*) (?>[1-9][0-9]*) (?>\s*) \} |
\\g (?>\s*) \{ (?>\s*) - (?>\s*) (?>[1-9][0-9]*) (?>\s*) \} |
\\x (?>[0-9A-Fa-f]{1,2}) |
\\ (?>[0-7]{2,3}) |
\\c [\x40-\x5F] |
\\x\{ (?>[0-9A-Fa-f]+) \} |
\\o\{ (?>[0-7]+) \} |
\\[bBNpP]\{ (?>[^\x81-\xFE0-9\}][^\x81-\xFE\}]*) \} |
\\
$q_char
|
\$` | \$\{`\} | \$ (?>\s*) PREMATCH | \$ (?>\s*) \{ (?>\s*) PREMATCH (?>\s*) \} | \$ (?>\s*) \{\^PREMATCH\} |
\$& | \$\{&\} | \$ (?>\s*) MATCH | \$ (?>\s*) \{ (?>\s*) MATCH (?>\s*) \} | \$ (?>\s*) \{\^MATCH\} |
\$ (?>\s*) POSTMATCH | \$ (?>\s*) \{ (?>\s*) POSTMATCH (?>\s*) \} | \$ (?>\s*) \{\^POSTMATCH\} |
lib/Euhc.pm view on Meta::CPAN
99339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976
}
}
}
elsif
(
$char
[
$i
] eq
'\E'
) {
}
# \0 --> \0
elsif
(
$char
[
$i
] =~ /\A \\ (?>\s*) 0 \z/oxms) {
}
# \g{N}, \g{-N}
# P.108 Using Simple Patterns
# in Chapter 7: In the World of Regular Expressions
# of ISBN 978-0-596-52010-6 Learning Perl, Fifth Edition
# P.221 Capturing
# in Chapter 5: Pattern Matching
# of ISBN 978-0-596-00492-7 Programming Perl 4th Edition.
# \g{-1}, \g{-2}, \g{-3} --> \g{-1}, \g{-2}, \g{-3}
elsif
(
$char
[
$i
] =~ /\A \\g (?>\s*) \{ (?>\s*) - (?>\s*) ((?>[1-9][0-9]*)) (?>\s*) \} \z/oxms) {
}
# \g{1}, \g{2}, \g{3} --> \g{2}, \g{3}, \g{4} (only when multibyte anchoring is enable)
elsif
(
$char
[
$i
] =~ /\A \\g (?>\s*) \{ (?>\s*) ((?>[1-9][0-9]*)) (?>\s*) \} \z/oxms) {
if
($1 <=
$parens
) {
$char
[
$i
] =
'\\g{'
. ($1 + 1) .
'}'
;
}
}
# \g1, \g2, \g3 --> \g2, \g3, \g4 (only when multibyte anchoring is enable)
elsif
(
$char
[
$i
] =~ /\A \\g (?>\s*) ((?>[1-9][0-9]*)) \z/oxms) {
if
($1 <=
$parens
) {
$char
[
$i
] =
'\\g'
. ($1 + 1);
}
}
# \1, \2, \3 --> \2, \3, \4 (only when multibyte anchoring is enable)
elsif
(
$char
[
$i
] =~ /\A \\ (?>\s*) ((?>[1-9][0-9]*)) \z/oxms) {
if
($1 <=
$parens
) {
$char
[
$i
] =
'\\'
. ($1 + 1);
}
}
( run in 0.498 second using v1.01-cache-2.11-cpan-0d8aa00de5b )