正则表达式的一些元符号
正则表达式
正则表达式—通常用于判断语句中,用来检查某一字符串是否满足某一格式
正则表达式是由普通字符与元字符组成
- 普通字符包括大小写字母、数字、标点符号及一些其他符号
- 元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符或表达式)在目标对象中的出现模式
一:基础正则表达式常见元字符:(支持的工具:grep、egrep、sed、awk)
元字符 | 含义 |
---|---|
\ : | 转义字符,用于取消特殊符号的含义,例:\!、\n、\$等 |
^ : | 匹配字符串开始的位置,例:^a、^the、^#、^[a-z] |
$ : | 匹配字符串结束的位置,例:word$ 、^$匹配空行 |
. : | 匹配除\n(换行符)之外的任意的一个字符,例:go.d、g..d |
“*” : | 匹配前面子表达式0次或者多次,例:goo*d、go.*d |
[list] | 匹配list列表中的一个字符,例:go[ola]d,[abc]、[a-z]、[a-z0-9]、[0-9]匹配任意一位数字 |
[^list] | 匹配任意非list列表中的一个字符,例:[^0-9]、[^A-Z0-9]、[^a-z]匹配任意一位非小写字母 |
\{n\} | 匹配前面的子表达式n次,例:go\{2\}d、'[0-9]\{2\}'匹配两位数字 |
\{n,\} | 匹配前面的子表达式不少于n次,例:go\{2,\}d、'[0-9]\{2,\}'匹配两位及两位以上数字 |
\{n,m\} | 匹配前面的子表达式n到m次,例:go \{2,3\}d、'[0-9]\{2,3\}'匹配两位到三位数字 |
\w | 匹配包括下划线的任何单词字符。 |
\W : | 匹配任何非单词字符。等价于“[^A-Za-z0-9_]” |
\d | 匹配一个数字字符。 |
\D : | 匹配一个非数字字符。等价于 [^0-9]。 |
\s : | 空白符。 |
\S : | 非空白符 |
注:egrep、awk、grep -E、sed -r 使用{n}、{n,}、{n,m}匹配时“{}”不用加“\”
二:扩展正则表达式元字符:(支持的工具:egrep、awk、grep -E 、sed -r
元字符 | 含义 |
---|---|
+ | 匹配前面子表达式1次以上,例:go+d,将匹配至少一个o,如god、good、goood等 |
? | 匹配前面子表达式0次或者1次,例:go?d,将匹配gd或god |
() | 将括号中的字符串作为一个整体,例1:g(oo)+d,将匹配oo整体1次以上,如good、gooood等 |
| | 以或的方式匹配字符串,例:g(oo|la)d,将匹配good或者glad |
实验一正则表达式匹配E-mail地址
分段进行配置
用户名@:长度要求在6-18位,任意大小写英文,任意数字,除了@符号和空格以外的其它任意符号字符,开头只能是 _ 或者字母
^([a-zA-Z_][^@ ]{5,17})@子域名.[二级域名]:长度任意,符号只能包含 - _ .
[a-zA-Z0-9\_\-\.]+(\.[a-zA-Z0-9\_\-\.]+)?.顶级域名: 长度在2-5,任意大小写英文
\.([a-zA-Z]{2,5})$
所有段连起来就完成了
egrep "^([a-zA-Z_][^@ ]{5,17})@[a-zA-Z0-9\_\-\.]+(\.[a-zA-Z0-9\_\-\.]+)?\.([a-zA-Z]{2,5})$"
实验二正则表达式匹配电话号码
分开来配置,一个个要求来
区号025开头,号码与区号间可以是空格、-、没有,号码必须是5或者8开头的八位数区号025开头 ^(025)号码与区号间可以是空格、-、没有 [ -]?号码必须是5或者8开头的八位数 [58][0-9]{7}$
把所有的配置合起来
egrep "^(025)[ -]?[58][0-9]{7}$"
三附录一些正则表达式
正则表达式的一些元符号相关推荐
- 正则表达式 元字符/元符号意义
字符类.单个字符和数字 元字符/元符号 匹配情况 * 匹配出换行符外的任意字符 [a-z0-9] 匹配括号中的字符集中的任意字符 [^a-z0-9] 匹配任意不在括号中的字符集中的字符 \d 匹配 ...
- 终结符与元符号的区别
编译原理中终结符与元符号的区别 终结符 Vt是一个非空有穷集合,该集合中的每一个元素只能在规则"::="的右边出现,称为终结符号. 简单的说,就是只能出现在候选式的右部的元素. 注 ...
- 正则表达式元符号大全
正则表达式有多种不同的风格.下表是在PCRE中元字符及其在正则表达式上下文中的行为的一个完整列表: 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符. ...
- 正则表达式 —— 非捕获元
非捕获元讲解 正则表达式语法中,有一种称为"非捕获元".是基于子表达式的语法规则: 举例1 (pattern) 匹配 pattern 并获取这一匹配.所获取的匹配可以从产生的 Ma ...
- python正则表达式匹配括号并删除_正则表达式去除中括号(符号)及里面包含的内容...
例子:颜色:粉色[10] 尺码:S[5] 去掉[ ]及内容: preg_replace("/\[.*\]/", '', $str)1 处理后效果:颜色:粉色 尺码:S 小技巧:可把 ...
- java正则表达式去除括号及_正则表达式去除中括号(符号)及里面包含的内容...
例子:颜色:粉色[10] 尺码:S[5] 去掉[ ]及内容: preg_replace("/\[.*\]/", '', $str)1 处理后效果:颜色:粉色 尺码:S 小技巧:可把 ...
- 正则表达式中文和中文符号
匹配中文标点符号: [\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b] 匹配中文字符的正则表达式: [ ...
- 正则表达式筛出多余符号、只留英文字母
rt,保留空格和回车 正则表达式 r1 = u'[{\u4e00-\u9fa5}0-9'!"#$%&\'()*+,-./:;<=>?@,.?★.-[]<>?& ...
- python特殊含义符号_python 正则表达式中的特殊符号介绍
python 2.7.3 正则表达式:正则表达式就是根据自己的需要定义字符串而已, 定义方法: s = r'\d{3,4}' 为了与字符串赋值做区分,定义时需要加个 r . 用途 : 定义好以后可以从 ...
最新文章
- oracle各种字符集修改
- mysql二级制包安装 for RedHat Linux Enterprise6.4
- 网络爬虫---json编码和解码
- 关于VB中没有VSS菜单问题
- BZOJ4327 : JSOI2012 玄武密码
- 《高性能JavaScript》第三章 DOM编程
- Redis基本数据类型
- pad_sequences序列填充(转载)
- MSN消息提示类(II)
- 【51Nod - 1268】和为K的组合 (背包 或 dfs)
- docker push到私有仓库、pull
- 基础知识(十六)Opencv、python、ubuntu
- parallels desktop 缺少组件_厦门100W5折电脑太阳能光伏组件,100W293mm*418mm*70mmMP4车载太阳能板...
- 使用jQuery实现网页技术(无数据库)
- Verilog初级教程(17)Verilog中的case语句
- EXT3-fs error和EXT4-fs error小总结
- 飘云阁论坛出品汇编逆向专用记事本
- STM32单片机学习总结之------位操作
- 【软件工程】系统流程图——期末快速复习用
- 信息安全-网络安全审计技术原理与应用