, . 123, 56789 ..
, , , : " (Perl) , ...?" ", , !" : " Perl...?" ☺
Perl:
m{
^ (
( \d )
(?(?= ( \d )) | $)
(?(?{ ord $3 == 1 + ord $2 }) (?1) | $)
) $
}x
, (?(COND)THEN|ELSE), 1 THEN . , (?1).
, ?
, ; , , . ☺
. , , , Perl Theres , .
-
, , Unicode, -ASCII ( " " ), , UCS-2, UTF-16, .
:
Yes: 3456
No: 43
Yes: 567
No: 1245
No: 568
No: 987
Yes: 12
Yes: 12345
No: 24
No: 13456
No: 12354678
Yes: 12345678
No: ١٣٠٢
Yes: ٤٥٦٧
No: २१३
Yes: ४५६७
Yes: ८९
No: ১১২
Yes: ৩৪৫৬
No: ৭৮৯৮
Yes: ௮௯
No: ௮௮
No: ๖๗๗๘
Yes: ๖๗๘
No: ༣༤༢༥༧༦༨
No: 01132
Yes: 234
Yes: 89
Yes: 𝟐𝟑𝟒𝟓
No: 𝟓𝟒𝟑𝟐
No: 𝟙𝟚𝟚𝟛
Yes: 𝟛𝟜𝟝𝟞
Yes: 𝟭𝟮𝟯𝟰𝟱𝟲𝟳𝟴𝟵
Yes: 𝟶𝟷
No: 𝟸𝟹𝟺𝟼𝟻
Yes: 𝟹𝟺𝟻𝟼𝟽𝟾𝟿
:
use 5.10.0;
use utf8;
use strict;
use autodie;
use warnings qw< FATAL all >;
use open qw< :std :utf8 >;
use charnames qw< :full >;
my @numbers = (
3456,
43,
567,
1245,
568,
987,
12,
12345,
24,
13456,
12354678,
12345678,
hard_stuff(),
);
my $ascending_rx = qr{
^ ( # works for *ANY* script!
( \p{Decimal_Number} )
(?= $ | (??{ chr(1+ord($2)) }) )
(?: (?1) | $ )
) $
}x;
for my $n (@numbers) {
printf "%s: %10s\n",
($n =~ $ascending_rx) ? "Yes" : " No",
$n;
}
sub hard_stuff {
( "\N{ARABIC-INDIC DIGIT ONE}"
. "\N{ARABIC-INDIC DIGIT THREE}"
. "\N{ARABIC-INDIC DIGIT ZERO}"
. "\N{ARABIC-INDIC DIGIT TWO}"
),
( "\N{ARABIC-INDIC DIGIT FOUR}"
. "\N{ARABIC-INDIC DIGIT FIVE}"
. "\N{ARABIC-INDIC DIGIT SIX}"
. "\N{ARABIC-INDIC DIGIT SEVEN}"
),
( "\N{DEVANAGARI DIGIT TWO}"
. "\N{DEVANAGARI DIGIT ONE}"
. "\N{DEVANAGARI DIGIT THREE}"
),
( "\N{DEVANAGARI DIGIT FOUR}"
. "\N{DEVANAGARI DIGIT FIVE}"
. "\N{DEVANAGARI DIGIT SIX}"
. "\N{DEVANAGARI DIGIT SEVEN}"
),
( "\N{DEVANAGARI DIGIT EIGHT}"
. "\N{DEVANAGARI DIGIT NINE}"
),
( "\N{BENGALI DIGIT ONE}"
. "\N{BENGALI DIGIT ONE}"
. "\N{BENGALI DIGIT TWO}"
),
( "\N{BENGALI DIGIT THREE}"
. "\N{BENGALI DIGIT FOUR}"
. "\N{BENGALI DIGIT FIVE}"
. "\N{BENGALI DIGIT SIX}"
),
( "\N{BENGALI DIGIT SEVEN}"
. "\N{BENGALI DIGIT EIGHT}"
. "\N{BENGALI DIGIT NINE}"
. "\N{BENGALI DIGIT EIGHT}"
),
( "\N{TAMIL DIGIT EIGHT}"
. "\N{TAMIL DIGIT NINE}"
),
( "\N{TAMIL DIGIT EIGHT}"
. "\N{TAMIL DIGIT EIGHT}"
),
( "\N{THAI DIGIT SIX}"
. "\N{THAI DIGIT SEVEN}"
. "\N{THAI DIGIT SEVEN}"
. "\N{THAI DIGIT EIGHT}"
),
( "\N{THAI DIGIT SIX}"
. "\N{THAI DIGIT SEVEN}"
. "\N{THAI DIGIT EIGHT}"
),
( "\N{TIBETAN DIGIT THREE}"
. "\N{TIBETAN DIGIT FOUR}"
. "\N{TIBETAN DIGIT TWO}"
. "\N{TIBETAN DIGIT FIVE}"
. "\N{TIBETAN DIGIT SEVEN}"
. "\N{TIBETAN DIGIT SIX}"
. "\N{TIBETAN DIGIT EIGHT}"
),
( "\N{FULLWIDTH DIGIT ZERO}"
. "\N{FULLWIDTH DIGIT ONE}"
. "\N{FULLWIDTH DIGIT ONE}"
. "\N{FULLWIDTH DIGIT THREE}"
. "\N{FULLWIDTH DIGIT TWO}"
),
( "\N{FULLWIDTH DIGIT TWO}"
. "\N{FULLWIDTH DIGIT THREE}"
. "\N{FULLWIDTH DIGIT FOUR}"
),
( "\N{FULLWIDTH DIGIT EIGHT}"
. "\N{FULLWIDTH DIGIT NINE}"
),
( "\N{MATHEMATICAL BOLD DIGIT TWO}"
. "\N{MATHEMATICAL BOLD DIGIT THREE}"
. "\N{MATHEMATICAL BOLD DIGIT FOUR}"
. "\N{MATHEMATICAL BOLD DIGIT FIVE}"
),
( "\N{MATHEMATICAL BOLD DIGIT FIVE}"
. "\N{MATHEMATICAL BOLD DIGIT FOUR}"
. "\N{MATHEMATICAL BOLD DIGIT THREE}"
. "\N{MATHEMATICAL BOLD DIGIT TWO}"
),
( "\N{MATHEMATICAL DOUBLE-STRUCK DIGIT ONE}"
. "\N{MATHEMATICAL DOUBLE-STRUCK DIGIT TWO}"
. "\N{MATHEMATICAL DOUBLE-STRUCK DIGIT TWO}"
. "\N{MATHEMATICAL DOUBLE-STRUCK DIGIT THREE}"
),
( "\N{MATHEMATICAL DOUBLE-STRUCK DIGIT THREE}"
. "\N{MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR}"
. "\N{MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE}"
. "\N{MATHEMATICAL DOUBLE-STRUCK DIGIT SIX}"
),
( "\N{MATHEMATICAL SANS-SERIF BOLD DIGIT ONE}"
. "\N{MATHEMATICAL SANS-SERIF BOLD DIGIT TWO}"
. "\N{MATHEMATICAL SANS-SERIF BOLD DIGIT THREE}"
. "\N{MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR}"
. "\N{MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE}"
. "\N{MATHEMATICAL SANS-SERIF BOLD DIGIT SIX}"
. "\N{MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN}"
. "\N{MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT}"
. "\N{MATHEMATICAL SANS-SERIF BOLD DIGIT NINE}"
),
( "\N{MATHEMATICAL MONOSPACE DIGIT ZERO}"
. "\N{MATHEMATICAL MONOSPACE DIGIT ONE}"
),
( "\N{MATHEMATICAL MONOSPACE DIGIT TWO}"
. "\N{MATHEMATICAL MONOSPACE DIGIT THREE}"
. "\N{MATHEMATICAL MONOSPACE DIGIT FOUR}"
. "\N{MATHEMATICAL MONOSPACE DIGIT SIX}"
. "\N{MATHEMATICAL MONOSPACE DIGIT FIVE}"
),
( "\N{MATHEMATICAL MONOSPACE DIGIT THREE}"
. "\N{MATHEMATICAL MONOSPACE DIGIT FOUR}"
. "\N{MATHEMATICAL MONOSPACE DIGIT FIVE}"
. "\N{MATHEMATICAL MONOSPACE DIGIT SIX}"
. "\N{MATHEMATICAL MONOSPACE DIGIT SEVEN}"
. "\N{MATHEMATICAL MONOSPACE DIGIT EIGHT}"
. "\N{MATHEMATICAL MONOSPACE DIGIT NINE}"
),
}
PS: , , Theres , Perl, , , , . ☻