当前位置:  开发笔记 > 编程语言 > 正文

Perl6:如何在用户定义的字符类或范围中使用<alpha>?

如何解决《Perl6:如何在用户定义的字符类或范围中使用<alpha>?》经验,为你挑选了1个好方法。

我试图匹配任何字母字符和","或";" 我试图根据文档https://docs.perl6.org/language/regexes使用"<:L>字母字符" .但是,编译器抱怨.不使用a..zA..Z这样做的正确方法是什么?

say "a,b,c;d,e;xyz" ~~ m/ <[  \, \; ]>+ /;

错误信息:

Potential difficulties:
    Repeated character (a) unexpectedly found in character class
    at C:\Users\Guest\Documents/avg.pl:128
    ------> ay "a,b,c;d,e;xyz" ~~ m/ <[  \, \; ]>+ /;

非常感谢你 !!



1> Brad Gilbert..:

你不能用一个分治像内部枚举字符类(的<[ ... ]>语法).正确枚举字符类的一个示例是<[abc]>匹配字符'a','b'或'c'.你写了一个开始的枚举字符类<[ ....这列举了字符'<','a','l','p','h','a' - 然后编译器抱怨说"在字符类中意外地发现了重复字符(a)".

什么是正确的方法

将相应的Unicode属性(:L)添加到包含,;类似的枚举字符类中:

say "a,b,c;d,e;xyz" ~~ / <+ :L + [,;] >+ /;

我们所链接的文档最接近于解释这个(超级简洁地)在"一个人可以写<:Ll +:N>"的位附近.请注意,关于空格的语法很有用.(如果你弄错了,它通常会无法匹配.)

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有