Linux基础——正则表达式

正则表达式

  • 正则表达式是什么?
  • 与语言无关的正则表达式
  • 一般正则表达式
  • 延伸正则表达式

正则表达式是什么?

正则表示式是针对字符串的匹配规则,通过这个规则可快速准确查找定位字符串

与语言无关的正则表达式

  • 英语编码顺序为:0 1 2 3 4 … A B C D … Z a b c d …z
  • 其他地区的编码顺序可能为:0 1 2 3 4 … a A b B c C d D … z Z
  • [A-Z]对于前者指的是从大写A到大写Z的字符,但对于后者还包括了b-z

所以为了避免不同编码对正则的影响,规定了一些通用的正则表达式

符号 意义
[:alnum:] 表示字母及数字,即0-9,A-Z,a-z
[:alpha:] 表示字母,即A-Z,a-z
[:blank:] 表示space和tab键
[:cntrl:] 表示键盘的控制键,如Crtl、Shift等
[:digit:] 表示数字,即0-9
[:graph:] 表示小写字母,即a-z
[:print:] 表示任何可被打印出来的字符
[:punct:] 表示标点符号,即" ’ ? ! 等
[:upper:] 表示大写字母,即A-Z
[:space:] 表示可能产生空白的字符
[:space:] 表示16进制类型

一般正则表达式

符号 意义
* 重复前一个字符0到无数次,*A表示0个或多个A
. 1个任意字符
.* 0个或多个任意字符
[] [abcd]表示可能为abcd中的任意一个
[-] [0-9]表示有0-9的任意数字
[^] [ ^a ] 除了a以外的字符
^ ^A表示以A开头的字符
$ B$表示以B结尾的字符
^$ 空白行
{} A\ {2,4\ }表示2-4个A,需要对{}转义。{2}表示2个,{2, }表示2个以上

注意*在正则和通配符是不一样的,而.代替了?

延伸正则表达式

符号 意义
+ 一个或一个以上字符
? 0个或多个字符
| 将正则用or连接起来
() 群组字符,如a(b|c)对应ab或ac
()+ 重复群组字符,如a(b)+c对应abbb…c

你可能感兴趣的:(#,Linux基础,正则表达式,linux,ubuntu)