正则表达式 正则是什么意思

写在开篇

不知道你们有没有过这样的经历:我们去某些网站注册帐号 , 当你在设置密码的时候 , 网站会提示你密码的长度范围,以及对应的规则限制,现在假设我们不知道正则表达式,作为程序员,该如何去实现这样一个密码验证呢?关于正则表达式一直都是个让很多我们都觉得很郁闷的一个东西,觉得创造正则表达式的那个家伙简直就是个奇葩 , 
了解什么是正则表达式?
正则表达式是?组由字?和符号组成的特殊?本,它可以?来从?本中找出满?你想要的格式的句?
正则表达式可以从?个基础字符串中根据?定的匹配模式替换?本中的字符串、提取字符串等 。
正则表达式的分类
  • 在 Linux 和 OS X 下,常见的正则表达式,至少有以下三种:
基本的正则表达式(Basic Regular Expression 又叫 Basic RegEx 简称 BREs)
扩展的正则表达式(Extended Regular Expression 又叫 Extended RegEx 简称 EREs)Perl 的正则表达式(Perl Regular Expression 又叫 Perl RegEx 简称 PREs)
Linux/OS X 下常用命令与正则表达式的关系命令
正则表达式特定
grep
支持 BREs、EREs、PREs 正则表达式
1. 指令后不跟任何参数, 则表示要使用 “BREs”
2. grep 指令后跟 ”-E” 参数, 则表示要使用 “EREs”;
3. grep 指令后跟 “-P” 参数, 则表示要使用 “PREs” 。
egrep
支持 EREs、PREs 正则表达式
1. egrep 指令后不跟任何参数, 则表示要使用 “EREs”;
2. egrep 指令后跟 “-P” 参数, 则表示要使用 “PREs” 。
sed
支持 BREs、EREs
1. sed 指令默认是使用 “BREs”;
2. sed 指令后跟 “-r” 参数 , 则表示要使用“EREs” 。
awk
支持 EREs,并且默认使用 “EREs”
sed 正则表达式特点
  • sed 功能与作用
sed 处理的对象:文本文件sed 处理操作:对文本文件的内容进行 — 查找、替换、删除、增加等操作sed 在处理文本文件的时候,也是按行处理的
awk 正则表达式特点
awk 处理的对象:文本文件awk 处理操作:主要是对列进行操作
元字符
  • 正则表达式主要依赖于元字符
正则表达式
描述
示例
\b
单词边界
\bcool\b匹配cool,不匹配coolant
\B
非单词边界
cool\B匹配coolant不匹配cool
\d
单个数字字符
b\db匹配b2b,不匹配bcb
\D
单个非数字字符
b\Db匹配bcb不匹配b2b
\w
单个单词字符(字母,数字与_)
\w匹配1或a , 不匹配&
\W
单个非单词字符
\W匹配&,不匹配1或a
\n
换行符
\n匹配一个新行
\s
单个空白字符
x\sx匹配xx,不匹配xx
\S
单个非空白字符
x\S\x匹配xkx,不匹配xx
\r
回车
\r匹配回车
\t
横向制表符
\t匹配一个横向制表符
\v
垂直制表符
\v匹配一个垂直制表符
\f
换页符
\f匹配一个换页符
基本正则表达式字符
描述
^
^word搜索以word开头的内容
$
word$搜索以word结尾的内容
^$
表示空行,不是空格
.
代表且只能代表任意一个字符(不匹配空行)
\
转义字符 , 让有特殊含义的字符脱掉马甲 , 现出原形,如.只表示小数点
*

推荐阅读