perl6正则 2: 字母,数字,空格,下划线, 字符集
数字, 字母, 下划线
在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: 字母,数字,空格,下划线, 字符集的更多相关文章
- php 正则匹配包含字母、数字以及下划线,且至少包含2种
新系统注册功能需对用户名和密码做以下要求:包含字母.数字以及下划线,且至少包含2种: 在网上没有搜到符合要求的代码,于是自己对他人代码做了一点修改,经测试满足要求.代码如下: if (!preg_ma ...
- ASP.NET C# 登陆窗体 限制用户名只输入字母 数字以及下划线
文本框的输入限制,我们主要集中两个问题: 一.怎样限制用户名输入的长度? 答:设置txtName的属性 MaxLength="; (我们这里以10个字符为例) 二.怎样限制用户名只输入字母 ...
- 对文本行进行排序,新增-d(目录排序),只对字母数字空格排序(TCPL 练习5-16)
文本行的排序用到了命令行参数以及多级指针,在要求只对字母数字空格进行排序时,关键的问题点是兼容-f命令参数,也就是排序的同时忽略大小写.由于在之前的练习中,我将忽略大小写的比较方法重新写了一个函数tr ...
- 涨姿势:抛弃字母、数字和下划线写SHELL
PHP中异或 (^) 的概念 <?php echo"A"^"?";?> <?php echo"A"^"?&quo ...
- iphone 微信下浏览器中数字去除下划线
在开发iphone应用程序的时候,safari下手机号码默认是有下划线的,通过下面的方法就可以去掉: <meta name="format-detection" conten ...
- js中用户名的正则(字符,数字,下划线,减号)
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inse ...
- PostgreSQL解决"Abc_de_fghijkl_mn" 首字母小写去掉下划线并且下划线后面的第一个字母大写或首字母大写去掉下划线并且下划线后面的首字母大写的js
select "lower"(substr('Abc_de_fghijkl_mn', 1, 1)) || substr(replace(REGEXP_REPLACE(INITCAP ...
- Python3.7 数字之间下划线
只是为了提高可读性,数值没变. >>> yes_votes = 42_572_6540 ; >>> yes_votes = 42_572_654099 ; > ...
- ie edge 自动给数字加下划线
<meta name="format-detection" content="telephone=no,email=no,address=no">
随机推荐
- 框架整合小小总结【SSH】注解式
Spring 注解式注册 bean: 大致分为以下几步: 开启 context 空间支持 开启自动扫描功能,指定扫描包路径 使用注解配置 bean (使用@Component 注解) 给 bean 注 ...
- 内存测试——Android Studio自带内存检测功能
AndroidStudio 自带 CPU 和内存检测工具,绘制出变化图,可以直观明了的看出内存和cpu的变化曲线. 手机连接电脑,选择要调试的手机,选择要检测的应用进程,Memory是内存监控,CPU ...
- Moya/RxSwift/ObjectMapper/Alamofire开发
废话不多说直接上代码 // // MoyaNetWorking.swift // GreenAir // // Created by BruceAlbert on 2017/9/18. // Copy ...
- Contest 9
A:搜索好难啊根本不会啊. B:暴力枚举给哪段前缀乘,维护一些前后缀最大最小值之类的东西就很好算了. #include<iostream> #include<cstdio> # ...
- QoS专题-第5期-QoS实现之队列调度与报文丢弃
QoS实现之队列调度与报文丢弃 前面的专题里面介绍了通过优先级映射或者MQC对报文进行分类和标记,那么分类之后要做什么呢?那就是根据分类结果对报文进行流量控制处理.拥塞管理和拥塞避免就是两种流量控制手 ...
- 【bzoj4198】【Noi2015】荷马史诗
4198: [Noi2015]荷马史诗 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 2200 Solved: 1169[Submit][Statu ...
- 【hdu4035】Maze
Portal --> hdu4035 Solution 讲道理不是很懂为啥概d那么喜欢走迷宫qwq (推式子推的很爽的一题?) 首先大力dp列式子 用\(f[i]\)表示从\(i\)到离开的期望 ...
- python基础----继承与派生、组合、接口与归一化设计、抽象类、子类中调用父类方法
一.什么是继承 继承是一种创建新的类的方式,在pyth ...
- 电商网站中价格的精确计算(使用BigDecimal进行精确运算(实现加减乘除运算))
使用BigDecimal的String的构造器.商业计算中,使用bigdecimal的String构造器,一定要用. 重要的事情说三遍: 商业计算中,使用bigdecimal的String构造器! 商 ...
- nodejs express框架一个工程中同时使用ejs模版和jade模版
在某些项目中,比如你接手了一个别人的项目然后你不想用蛋疼的ejs,或者你不想用蛋疼的jade.你有不想重写之前的页面,那么你现在可能需要新引入ejs或者jade模块,你仅仅需要做下面两步也许就能完成使 ...