正则表达式的使用

0、前言:

1)grep与find的区别:

  • grep是查找文本,查找文件的内容;
  • find 是查找文件,在目录中查找文件。

2)我们会使用egrep (grep的扩展板extended grep)来查找文本。

3)正则表达式与语言无关,是独立的

4)grep 查找的结果是 只要包含 要查找的字符串的 都会显示。而是完全匹配。

5)正则表达式也是匹配文件的内容

1、正则表达式字符类格式

正则表达式的使用_第1张图片

2、正则表达式数量限定符

 正则表达式的使用_第2张图片

 ?*在正则表达式中与之前的含义不尽相同,在此处是表示匹配前一个字符的个数。

 

3、正则表达式位置限定符

 正则表达式的使用_第3张图片

位置限定符可以使grep 精确的查找字符。 

\b用来查找单词

\B用来查找中间字母是xx的单词。

4、其他特殊字符 

正则表达式的使用_第4张图片 5、基础正则与扩展正则的区别:

基础正则 :Basic   正则  --------->使用 grep 

1)?+{}()            ------>为普通字符,需要加转义才行,----->表达式显得复杂

2)grep    -E      表达式                  ------------->加上-E参数,1)中的普通字符就不用转义了。

扩展正则:Extented 正则  ------->使用egrep  

------------>除了基础正则的方法2)外,可以使用  egrep (grep  -E)                ---->?+{}() 也不用转义了。

6、示例

egrep  'hello'  test.sh            --------------->test.sh中查找字符串 hello

egrep '[0-9]{1,3}\.[0-9]*'  test.sh      ------------->匹配1-3数字.任意多的数字

egrep '^hello'  test.sh   --------->以hello开头的行

egrep 'hello$'  test.sh   --------->以hello结尾的行

egrep '^hello$'  test.sh   --------->匹配仅有hello的行(hello hello 为什么匹配不出来?

---------->原因是^$两个符号都有的意思是,二者中间的内容是hello,且开头是hello,末尾是hello 故只能是hello)

egrep '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' test.sh ------->以数字开头,以数字结尾的4个数字的 ip 地址;

^$实际上除指定格式外,也指定了行中的内容及个数;所以中间什么都没有即表示空行。

egrep '^([0-9]{1,3}\.){3}[0-9]{1,3}$' test.sh ------->以数字开头,以数字结尾的4个数字的 ip 地址;//简写

egrep  '\匹配以th开头的单词

eprep  'th\> test.sh   ----------》匹配以th结尾的单词

eprep  '\ test.sh   ----------》匹配th单词

你可能感兴趣的:(正则表达式)