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">
随机推荐
- PHP中类中成员及常量
类中成员概述 面向对象编程,是需要通过“对象”去做什么事情(以完成某种任务): 而: 对象总是来源于类: 所以: 面向对象的编程,一切都是从定义类开始: 类中成员分为3大类: 属性: 方法: 常量: ...
- CF708C-Centroids
题目 一棵树的重心定义为一个点满足删除这个点后最大的连通块大小小于等于原来这颗树大小的一半. 给出一棵树,一次操作为删除一条边再添加一条边,操作结束后必须仍为一棵树.问这颗树的每个点是否可以通过一次操 ...
- 详解SQL Server数据修复命令DBCC的使用
严重级别为 21 表示可能存在数据损坏. 可能的原因包括损坏的页链.损坏的 IAM 或该对象的 sys.objects目录视图中存在无效条目. 这些错误通常由硬件或磁盘设备驱动程序故障而引起. MS ...
- C++解析(11):对象的构造
0.目录 1.对象的初始化 2.构造函数 3.无参构造函数与拷贝构造函数 4.小结 1.对象的初始化 对象中成员变量的初始值是多少? 下面的类定义中成员变量i和j的初始值是什么? 从程序设计的角度,对 ...
- Command Network OpenJ_Bailian - 3436(最小有向生成树模板题)
链接: http://poj.org/problem?id=3164 题目: Command Network Time Limit: 1000MS Memory Limit: 131072K To ...
- pycharm中新建并且运行django
1.对于Bottle框架其本身未实现类似于Tornado自己基于socket实现Web服务,所以必须依赖WSGI,默认Bottle已经实现并且支持的WSGI有: 帮助我们写socket的server. ...
- jQuery多重事件绑定
1. <a> a标签默认绑定了一个onclick事件,当自己再写一个onclick事件的时候,默认自己写的那个优先执行. 如下程序,先执行(123),然后再发生跳转. <!DOCTY ...
- 【刷题】BZOJ 5248 [2018多省省队联测]一双木棋
Description 菲菲和牛牛在一块n行m列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手.棋局开始时,棋盘上没有任何棋子, 两人轮流在格子上落子,直到填满棋盘时结束.落子的规则是:一个格子可以落子 ...
- 安装cacti监控系统
1 安装snmp [root@xxxx ~]# yum -y install net-snmp* 2 安装rddtool 3 创建数据库 cacti, 导入 cd xx/cacti/cacti.sql ...
- 【noip2018】【luogu5024】保卫王国
题目描述 Z 国有nn座城市,n - 1n−1条双向道路,每条双向道路连接两座城市,且任意两座城市 都能通过若干条道路相互到达. Z 国的国防部长小 Z 要在城市中驻扎军队.驻扎军队需要满足如下几个条 ...