> 文档中心 > shell中的正则表达式

shell中的正则表达式


正则表达式概述

也称为正规表示法、常规表示法,是一种字符模式,用于在查找过程中匹配指定的字符。许多程序设计语言都支持利用正则表达式进行字符串操作。正则表达式这个概念最初是Unix中的工具软件(比如sed和grep)普及开的。

作用

校验身份证号,邮箱,密码,手机号。。。。

正则中的名词解释:

元字符

指那些在正则表达式中具有特殊意义的专用字符,如:点(.)星(*)问号(?)等。

前导字符

位于元字符前面的字符: 比如:abc*  前导字符是C

正则中的元字符

.    匹配除了换行符以外的任意单个字符*前导字符出现0次或连续多次.*任意长度字符^行首(以。。。开头)$行尾(以。。。结尾)^$空行[]匹配括号里面任意单个字符或一组单个字符[^]匹配不包含括号里任一单个字符或一组单个字符^[]匹配以括号里任意单个字符或一组单个字符开头^[^]匹配不以括号里任意单个字符或一组单个字符开头\<取单词的头\>取单词的尾\<\>精确匹配\{n\}匹配前导字符连续出现n次\{n,\}匹配前导字符至少出现n次\{n,m\}匹配前导字符出现n次与m次之间\(\)保存被匹配的字符\d匹配数字(grep -P) \w匹配字母数字下划线(grep -P)\s匹配空格、制表符、换页符(grep -P)

扩展类正则常用元字符

grep需要加 -E

+匹配一个或多个前导字符?匹配0个或一个前导字符|()组字符(看成整体){n}前导字符重复至少n次{n,}前导字符重复至少n次{n,m}前导字符重复n到m次
[:alnum:]字母与数字字符[:alpha:]字母字符(包括大小写)[:blank:]空格与制表符[:digit:]数字[:lower:]小写字母[:upper:]大写字母[:punct:]标点符号[:space:]包括换行符,回车等在内的所有空白