Char-KOI8U

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
0.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/Ekoi8u.pm  view on Meta::CPAN

6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
    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((?>
    [^\\\$\@\[\(] |
    \\                               (?>[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]\{                      (?>[^0-9\}][^\}]*) \} |
    \\ $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/Ekoi8u.pm  view on Meta::CPAN

6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
        }
    }
}
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) {
}
 
# \g1, \g2, \g3 --> \g2, \g3, \g4 (only when multibyte anchoring is enable)
elsif ($char[$i] =~ /\A \\g (?>\s*) ((?>[1-9][0-9]*)) \z/oxms) {
}
 
# \1, \2, \3 --> \2, \3, \4 (only when multibyte anchoring is enable)
elsif ($char[$i] =~ /\A \\ (?>\s*) ((?>[1-9][0-9]*)) \z/oxms) {
}
 
# $0 --> $0
elsif ($char[$i] =~ /\A \$ 0 \z/oxms) {
    if ($ignorecase) {
        $char[$i] = '@{[Ekoi8u::ignorecase(' . $char[$i] . ')]}';



( run in 0.363 second using v1.01-cache-2.11-cpan-00829025b61 )