xml地图|网站地图|网站标签 [设为首页] [加入收藏]
来自 新濠国际登录平台 2019-09-28 16:45 的文章
当前位置: 新濠国际登录平台 > 新濠国际登录平台 > 正文

新濠国际登录平台由一类特殊字符及文本字符所

正则表达式基础以及grep的简单使用

正则表达式基础,正则表达式

正则表达式基础以及grep的简单使用

 

1 定义

正则表达式是你所定义的模式模板,Linux可以用它来过滤文本。Linux工具(比如grep、sed、gawk)能够在处理数据时使用正则表达式对数据进行模式匹配。如果数据匹配模式,它就会被接受并进一步处理;如果数据不匹配,它就会被滤掉。

 

新濠国际登录平台 1

2 正则表达式的原则

(1)正则表达式模式都区分大小写。(2)可以使用空格,数字。(3)空格和其他字符并没有什么区别。

3 特殊字符

包括 * [ ] ^ $ ( ) + ? | { }

    要使用特殊字符,必须转义,在转义字符时,需要在它前面加个特殊字符来告诉正则表达式引擎应该将接下来的字符当做普通的文本字符,这个特殊符号就是反斜线()。

4 锚字符

    ^ 行首锚定

    $ 行尾锚定

新濠国际登录平台 2

    b b 匹配词首和词尾

  < > 匹配词首和词尾

新濠国际登录平台 3

5 grep 基本用法

    -v    取反,找出不包含关键字的行

    -i    忽略字符大小写

    -n    显示匹配的行号

    -c    统计匹配到的行数

    -o    仅显示匹配到的字符串

    -w    匹配整个单词

    -A     n匹配的前n行

    -B    n 关键字的后n行

    -C    n 关键字的前后各n行

新濠国际登录平台 4

    -e    实现多个选项的逻辑或关系

新濠国际登录平台 5

     -E === egrep 支持扩展的正则表达式

  -F === fgrep 不支持正则表达式

6 字符匹配规则

    .        配任意单个字符

    [abc]    匹配a,b,c中单个字符

    [^abc]    匹配除a,b,c之外的字符

    [:alnum:]    匹配数字和字符

    [:alpha:]    匹配英文大小写字母a-z,A-Z

    [:lower:]    匹配小写字母

    [:upper:]    匹配大写字母

    [:space:]    匹配空格

    [:digit:]    匹配十进制数字

7 匹配次数

    *    匹配前面的字符任意次数,0至正无穷

    .*    匹配任意字符任意次数

    ?    匹配前面字符0次或者1次

    +    匹配前面字符至少1次

    {n}    配前面字符n次

    {m,n}    匹配前面字符出现m至n次

    {,n}    匹配前面字符最多出现n次

    {n,}    匹配前面字符至少n次

8 扩展正则表达式 egrep

次数匹配,和基本正则表达式类似,就是少了转义字符()

*     匹配前面字符任意次

?    匹配前面字符0次或1次

+    匹配前面字符1次或多次

{m}    匹配前面字符m 次

{m,n}匹配前面字符m到n 次

9 使用管道(|)

    管道允许你在检查数据时,用逻辑或方式指定正则表达式引擎要用的两个或者多个模式,如果任何一个模式匹配了数据文本,文本就通过,如果没有模式匹配,则数据流文本匹配失败。

新濠国际登录平台 6

10 分组

将匹配规则分成不同的组 使用 1 2 3..等数字去标识,便于后面使用同样规则的时候可以直接饮用

(root)+1

(string1+(string2)*)

1 string1+(string2)*

2 string2

找出/etc/passwd用户名同shell名的行

cat /etc/passwd | grep "^(b[[:alnum:]]+b):.*1$"
grep "^<(.*)>.*1$" /etc/passwd
cat /etc/passwd | egrep "^(b[[:alnum:]]+b):.*1$"

新濠国际登录平台 7

 

正则表达式基础以及grep的简单使用 1 定义 正则表达式是你所定义的模式模板,Linux可以用它来过滤文本。L...

正则表达式

在Linux当中,我们常常用到文本处理工具实现诸多功能,比如文本过滤工具grep等等,而此时往往需要正则表达式的辅助。
  正则表达式:由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能。
  
  正则表达式分类:基本正则表达式、扩展正则表达式

元字符分类:字符匹配、匹配次数、位置锚定、分组

新濠国际登录平台 8

正则表达式

 

1、基本正则表达式元字符

1 定义

(a)字符匹配
  • . 匹配任意单个字符
  • [] 匹配指定范围内的任意单个字符
  • [^] 匹配指定范围外的任意单个字符
  • [:alnum:] 字母和数字
  • [:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
  • [:lower:] 小写字母 [:upper:] 大写字母
  • [:blank:] 空白字符(空格和制表符)
  • [:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
  • [:cntrl:] 不可打印的控制字符(退格、删除、警铃…)
  • [:digit:] 十进制数字 [:xdigit:]十六进制数字
  • [:graph:] 可打印的非空白字符
  • [:print:] 可打印字符
  • [:punct:] 标点符号

正则表达式是你所定义的模式模板,Linux可以用它来过滤文本。Linux工具(比如grep、sed、gawk)能够在处理数据时使用正则表达式对数据进行模式匹配。如果数据匹配模式,它就会被接受并进一步处理;如果数据不匹配,它就会被滤掉。

(b)匹配次数
  • *匹配前面的字符任意次,包括0次(贪婪模式:尽可能长的匹配)
  • .*任意长度的任意字符
  • \?匹配其前面的字符0或1次
  • \+匹配其前面的字符至少1次
  • \{n\} 匹配前面的字符n次
  • \{m,n\} 匹配前面的字符至少m次,至多n次
  • \{,n\} 匹配前面的字符至多n次
  • \{n,\} 匹配前面的字符至少n次

 

(c)位置锚定
  • ^ 行首锚定,用于模式的最左侧
  • $ 行尾锚定,用于模式的最右
  • ^PATTERN$ 用于模式匹配整行
  • ^$ 空行
  • ^[[:space:]]*$ 空白行
  • < 或 b 词首锚定,用于单词模式的左侧
  • > 或 b 词尾锚定;用于单词模式的右侧
  • <PATTERN> 匹配整个单词

新濠国际登录平台 9

(d)分组

() 将一个或多个字符捆绑在一起,当作一个整体进行处理
  如: *(string1+(string2)),此处括号把string2作为一个分组,string1+(string2)*作为一个大的分组。

分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为: 1, 2, 3, ...
  1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符,一次类推
  还是上面的例子: (string1+(string2))
  1: string1+(string2)

  2: string2
  后向引用:引用前面的分组括号中的模式所匹配字符, 而非
模式本身
  或者: |
  示例: a|b: a或b C|cat: C或cat (C|c)at:Cat或cat

2 正则表达式的原则

2、扩展正则表达式

egrep = grep -E
  egrep [OPTIONS] PATTERN [FILE...]

(1)正则表达式模式都区分大小写。(2)可以使用空格,数字。(3)空格和其他字符并没有什么区别。

(a)字符匹配
  • 新濠国际登录平台,.任意单个字符
  • [] 指定范围的字符
  • [^] 不在指定范围的字符

3 特殊字符

(b)匹配次数
  • *:匹配前面字符任意次
  • ?: 0或1次
  • +: 1次或多次
  • {m}:匹配m次
  • {m,n}:至少m,至多n次

包括 * [ ] ^ $ ( ) + ? | { }

(c)位置锚定
  • ^ :行首
  • $ :行尾
  • \<, b :语首
  • \>, b :语尾

    要使用特殊字符,必须转义,在转义字符时,需要在它前面加个特殊字符来告诉正则表达式引擎应该将接下来的字符当做普通的文本字符,这个特殊符号就是反斜线()。

(d)分组
  • ()
    后向引用: 1, 2, ...
  • 或者:
    a|b:a或b
    C|cat:C或cat
    (C|c)at:Cat或cat

4 锚字符

    ^ 行首锚定

    $ 行尾锚定

新濠国际登录平台 10

    b b 匹配词首和词尾

  < > 匹配词首和词尾

新濠国际登录平台 11

5 grep 基本用法

    -v    取反,找出不包含关键字的行

    -i    忽略字符大小写

    -n    显示匹配的行号

    -c    统计匹配到的行数

    -o    仅显示匹配到的字符串

本文由新濠国际登录平台发布于新濠国际登录平台,转载请注明出处:新濠国际登录平台由一类特殊字符及文本字符所

关键词: