数字, 字母, 下划线

在perl6中, 如果是 数字, 字母, 下划线, 在正则里可以正接写上。

> so 'perl6' ~~ //
True
> so 'perl6_' ~~ /_/
True
>

数字, 字母, 下划线

如果不是数字、字母、 下划线, 可以用 \ 反斜线转义, 或用单、双相号包围。

>  'name@company.uk' ~~ / name\@co /
锝ame@co锝?
> 'name@company.uk' ~~ / name'@'co /
锝ame@co锝?
> 'name@company.uk' ~~ / name"@"co /
锝ame@co锝?
>

 空格

空格默认是忽略的, 比如, /ab     cde/ 相等于 /abcde/。

> so 'ab    cde' ~~ /ab    cd/
False
> so 'ab cde' ~~ /ab \s cd/
False
> so 'ab cde' ~~ /ab \s+ cd/
True
>

<[]> / <-[]>字符集

用<[]>定义字符集, 范围符号用 ..

如果要取反, 可以用这种形式: <-[]>

> so  ('abc1de' ~~ /<-[a12bdf_ec@#.?+$]>/)
False
> ~ ('-abc1de' ~~ /<[a12bdf_ec@#.?+$]>/)
a
>

在字符集中, 不用转义圆点与非字母字符

> ~ ('-abc1de' ~~ /<[a12bdf_ec@#.?^+$/\\]>/)
a
> ~ ('-abc1de' ~~ /<[a12bdf_ec@#.?^+$/\\`]>/)
a
> ~ ('-abc1de' ~~ /<[a12bdf_ec@#.?^+$/\\`~]>/)
a
> ~ ('-abc1de' ~~ /<[a12bdf_ec@#.?^+$/\\`~-]>/)
-
> ~ ('-abc1de' ~~ /<[-a12bdf_ec@#.?^+$/\\`~]>/)
-
> ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>/)
-
>

有一点要注意的就是: -  符号, 除了放在开头或结尾外, 在字符集中的其他地方要转义。 同样, 要转义的还有 / 符号。

当然, 量词 ? / * / + / **之类的也能用于一个字符集:

> ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>**3/)
-ab
> ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>?/)
-
> ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>+/)
-abc1de
> ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>*/)
-abc1de
> ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>**2/)
-a
> ~ ('-abc1de' ~~ /<[a\-12bdf_ec@#.?^+$/\\`~]>**5/)
-abc1
>

perl6正则 2: 字母,数字,空格,下划线, 字符集的更多相关文章

  1. php 正则匹配包含字母、数字以及下划线,且至少包含2种

    新系统注册功能需对用户名和密码做以下要求:包含字母.数字以及下划线,且至少包含2种: 在网上没有搜到符合要求的代码,于是自己对他人代码做了一点修改,经测试满足要求.代码如下: if (!preg_ma ...

  2. ASP.NET C# 登陆窗体 限制用户名只输入字母 数字以及下划线

    文本框的输入限制,我们主要集中两个问题: 一.怎样限制用户名输入的长度? 答:设置txtName的属性 MaxLength="; (我们这里以10个字符为例) 二.怎样限制用户名只输入字母 ...

  3. 对文本行进行排序,新增-d(目录排序),只对字母数字空格排序(TCPL 练习5-16)

    文本行的排序用到了命令行参数以及多级指针,在要求只对字母数字空格进行排序时,关键的问题点是兼容-f命令参数,也就是排序的同时忽略大小写.由于在之前的练习中,我将忽略大小写的比较方法重新写了一个函数tr ...

  4. 涨姿势:抛弃字母、数字和下划线写SHELL

    PHP中异或 (^) 的概念 <?php echo"A"^"?";?> <?php echo"A"^"?&quo ...

  5. iphone 微信下浏览器中数字去除下划线

    在开发iphone应用程序的时候,safari下手机号码默认是有下划线的,通过下面的方法就可以去掉: <meta name="format-detection" conten ...

  6. js中用户名的正则(字符,数字,下划线,减号)

    <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inse ...

  7. PostgreSQL解决"Abc_de_fghijkl_mn" 首字母小写去掉下划线并且下划线后面的第一个字母大写或首字母大写去掉下划线并且下划线后面的首字母大写的js

    select "lower"(substr('Abc_de_fghijkl_mn', 1, 1)) || substr(replace(REGEXP_REPLACE(INITCAP ...

  8. Python3.7 数字之间下划线

    只是为了提高可读性,数值没变. >>> yes_votes = 42_572_6540 ; >>> yes_votes = 42_572_654099 ; > ...

  9. ie edge 自动给数字加下划线

    <meta name="format-detection" content="telephone=no,email=no,address=no">

随机推荐

  1. ie浏览器升级的正确姿势

    一.版本说明 1.当前IE浏览器分为一下几个版本:IE 6,IE 7,IE 8,IE 9,IE 10,IE 11 2.windows最高支持IE版本win xp:IE 8win 7 :IE 11win ...

  2. bootstrap 中的静态模式的控制按钮上的一个坑

    在使用modal时发现,代码:<button class="btn btn-danger" data-toggle="modal" data-target ...

  3. BZOJ4890 Tjoi2017城市

    显然删掉的边肯定是直径上的边.考虑枚举删哪一条.然后考虑怎么连.显然新边应该满足其两端点在各自树中作为根能使树深度最小.只要线性求出这个东西就可以了,这与求树的重心的过程类似. #include< ...

  4. Bond UVA - 11354(并查集按秩合并)

    题意: 给你一张无向图,然后有若干组询问,让你输出a->b的最小瓶颈路. 解析: 应该都想过用prime的次小生成树做..但二维数组开不了那么大..所以只能用kruskal了.... #incl ...

  5. 【BZOJ4943】【NOI2017】蚯蚓排队(哈希)

    [BZOJ4943][NOI2017]蚯蚓排队(哈希) 题面 BZOJ 洛谷 UOJ 题解 记得去年看网络同步赛的时候是一脸懵逼的. 昨天看到\(zsy\)做了,今天就看了看.. 这不是\(Hash\ ...

  6. Linux内核设计第二周学习总结 完成一个简单的时间片轮转多道程序内核代码

    陈巧然 原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.使用实验楼的虚拟机 ...

  7. python基础(4)

    条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if ag ...

  8. tmp_table_size ---> 优化 MYSQL 经验总结

    数据库连接突然增多到1000的问题 查看了一下,未有LOCK操作语句. 但是明显有好多copy to tmp table的SQL语句,这条语读的时间比较长,且这个表会被加读锁,相关表的update语句 ...

  9. 【bzoj4811】由乃的OJ

    Portal --> bzoj4811 Solution  这题可以用树剖+线段树做也可以用LCT做,不过大体思路是一样的  (接下来先讲的是树剖+线段树的做法,再提LCT的做法) ​  首先位 ...

  10. Linux应用编程之串口操作20170901

    主要介绍在Linux应用程序下对串口的操作: 1.串口初始化 int InitCom() { int Ret; Ret = SerailComm.OpenCom( ComPortDevPath, 0 ...