正则表达式

正则表达式—通常用于判断语句中,用来检查某一字符串是否满足某一格式

正则表达式是由普通字符与元字符组成

  • 普通字符包括大小写字母、数字、标点符号及一些其他符号
  • 元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符或表达式)在目标对象中的出现模式

一:基础正则表达式常见元字符:(支持的工具: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}$"

三附录一些正则表达式


正则表达式的一些元符号相关推荐

  1. 正则表达式 元字符/元符号意义

    字符类.单个字符和数字   元字符/元符号 匹配情况 * 匹配出换行符外的任意字符 [a-z0-9] 匹配括号中的字符集中的任意字符 [^a-z0-9] 匹配任意不在括号中的字符集中的字符 \d 匹配 ...

  2. 终结符与元符号的区别

    编译原理中终结符与元符号的区别 终结符 Vt是一个非空有穷集合,该集合中的每一个元素只能在规则"::="的右边出现,称为终结符号. 简单的说,就是只能出现在候选式的右部的元素. 注 ...

  3. 正则表达式元符号大全

    正则表达式有多种不同的风格.下表是在PCRE中元字符及其在正则表达式上下文中的行为的一个完整列表: 字符 描述 \ 将下一个字符标记为一个特殊字符.或一个原义字符.或一个向后引用.或一个八进制转义符. ...

  4. 正则表达式 —— 非捕获元

    非捕获元讲解 正则表达式语法中,有一种称为"非捕获元".是基于子表达式的语法规则: 举例1 (pattern) 匹配 pattern 并获取这一匹配.所获取的匹配可以从产生的 Ma ...

  5. python正则表达式匹配括号并删除_正则表达式去除中括号(符号)及里面包含的内容...

    例子:颜色:粉色[10] 尺码:S[5] 去掉[ ]及内容: preg_replace("/\[.*\]/", '', $str)1 处理后效果:颜色:粉色 尺码:S 小技巧:可把 ...

  6. java正则表达式去除括号及_正则表达式去除中括号(符号)及里面包含的内容...

    例子:颜色:粉色[10] 尺码:S[5] 去掉[ ]及内容: preg_replace("/\[.*\]/", '', $str)1 处理后效果:颜色:粉色 尺码:S 小技巧:可把 ...

  7. 正则表达式中文和中文符号

    匹配中文标点符号: [\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b] 匹配中文字符的正则表达式: [ ...

  8. 正则表达式筛出多余符号、只留英文字母

    rt,保留空格和回车 正则表达式 r1 = u'[{\u4e00-\u9fa5}0-9'!"#$%&\'()*+,-./:;<=>?@,.?★.-[]<>?& ...

  9. python特殊含义符号_python 正则表达式中的特殊符号介绍

    python 2.7.3 正则表达式:正则表达式就是根据自己的需要定义字符串而已, 定义方法: s = r'\d{3,4}' 为了与字符串赋值做区分,定义时需要加个 r . 用途 : 定义好以后可以从 ...

最新文章

  1. oracle各种字符集修改
  2. mysql二级制包安装 for RedHat Linux Enterprise6.4
  3. 网络爬虫---json编码和解码
  4. 关于VB中没有VSS菜单问题
  5. BZOJ4327 : JSOI2012 玄武密码
  6. 《高性能JavaScript》第三章 DOM编程
  7. Redis基本数据类型
  8. pad_sequences序列填充(转载)
  9. MSN消息提示类(II)
  10. 【51Nod - 1268】和为K的组合 (背包 或 dfs)
  11. docker push到私有仓库、pull
  12. 基础知识(十六)Opencv、python、ubuntu
  13. parallels desktop 缺少组件_厦门100W5折电脑太阳能光伏组件,100W293mm*418mm*70mmMP4车载太阳能板...
  14. 使用jQuery实现网页技术(无数据库)
  15. Verilog初级教程(17)Verilog中的case语句
  16. EXT3-fs error和EXT4-fs error小总结
  17. 飘云阁论坛出品汇编逆向专用记事本
  18. STM32单片机学习总结之------位操作
  19. 【软件工程】系统流程图——期末快速复习用
  20. 信息安全-网络安全审计技术原理与应用

热门文章

  1. 在java给别人邮箱发邮件
  2. 来自网页消息do.php意思,PHP网页游戏学习之Xnova(ogame)源码解读(五)
  3. eclipse中解决svn连接时数字证书问题
  4. allero过孔盖油PCB文件设置
  5. 打算面试外包公司刷经验,等差不多了,再去甲方尝试,是我想的太天真了。
  6. 计算机学院学生管理制度,计算机学院教学管理规章制度.doc
  7. 免费良心软件整理,提升你的工作效率
  8. 华为S5720之瞒天过海------查看配置及备份配置信息
  9. 聊聊Java 8 Lambda 表达式
  10. 今日头条与自媒体江湖