<:Nl> matches a Number that is letter-like I mean obviously `Ⅿ` (ROMAN NUMERAL ONE THOUSAND) looks like a letter.
There is also <:Nd> for Number digit, and <:No> for other Numbers If you want to find out the general category of a character you can call `.uniprop`. say "1".uniprop; # Nd # Number digit say "Ⅿ".uniprop; # Nl # Number letter # (ROMAN NUMERAL ONE THOUSAND) say "¼".uniprop; # No # Number other say "m".uniprop; # Ll # Letter lowercase say "M".uniprop; # Lu # Letter uppercase say "ߢ".uniprop; # Lo # Letter other say "ῼ".uniprop; # Lt # Letter titlecase say "ʹ".uniprop; # Lm # Letter modifier # (MODIFIER LETTER PRIME) say (0..0x10ffff).map(*.uniprop).Set.keys.sort; # (Cc Cf Cn Co Cs Ll Lm Lo Lt Lu Mc Me Mn Nd Nl No Pc Pd Pe Pf Pi Po Ps Sc Sk Sm So Zl Zp Zs) These are all defined by Unicode. The MODIFIER LETTER PRIME is particularly useful if you want to write code like: my \A = …; my \Aʹ = A + …; That works because it is a letter. Note that if you call it on a number you are asking for the uniprop of the character with that codepoint. say "A".ord; # 65 say 65.uniprop; # Lu # because A is an uppercase Letter There is also a `.uniprops` for getting a sequence of unicode properties for each character in a string. say "A5".uniprops; # (Lu Nd) say "A5".comb.map(*.uniprop); # (Lu Nd) On Sun, Jan 13, 2019 at 2:42 AM ToddAndMargo via perl6-users <email@example.com> wrote: > > On 1/12/19 3:04 PM, Timo Paulssen wrote: > > On 12/01/2019 23:40, ToddAndMargo via perl6-users wrote: > >> But this does not. What is wrong with (<:N>**2) ? > >> > >> $ perl6 -e 'my Str $Date=DateTime.now.Str; $Date~~m/ (<:N>**4) "-" > >> (<:N>**2) "-" (<:Nl>**2) "T" .* /; print "$Date\n\t$0 $1 $2\n"' > >> Use of Nil in string context > >> in block <unit> at -e line 1 > >> Use of Nil in string context > >> in block <unit> at -e line 1 > >> Use of Nil in string context > >> in block <unit> at -e line 1 > >> 2019-01-12T14:33:10.692302-08:00 > >> > >> > >> Many thanks, > >> -T > > > > > > Hi Todd, > > > > it looks like you have an accidental l in there: the third capture group > > has <:Nl> instead of <:N>. > > > > Changing that makes it work for me > > - Timo > > > > Hi Timo, > > Just out of curiosity, what is the difference between "Number (<:N>)" > and "Number Like (<:Nl>)"? What would they not be the same in this context? > > My latest: > > $ perl6 -e 'DateTime.now.Str ~~ m/ (<:N>+) "-" (<:N>+) "-" (<:N>+) "T" > .* /; my Str $Po="$1$2x$0_"; $Po~~s/x20//;print "$Po\n";' > > 011319_ > > I stuck the "x" in there so I would not clobber day = 20. > > -T