正则表达式(字符)是一种字符模式,用于查找过程中匹配指定字符。
常用正则元字符
元字符指在正则表达式中拥有特殊含义,不再是表明含义。
元字符/其他 | 含义
^ [^] | 第一个表示开头 第二个表示对[]里的字符取反
$ | 表示字符结尾
* | 表示0次或者多次
. | 任意字符
\ | 用于转义字符
\(\) | 对字符分组, 定义再次出现此字符分组--\(\).*\1
[] | 指定[]里面指定一个人员字符,一般可以尝试把一些有歧义的字符放在里面【. \】
\{\} | 指定某些字符出现的次数,\{1\}--一次 \{1,3\}---1到3次 \{1,\}---至少一次
\<\> | 锚定一个单词(以符号或者空格、换行符之类为单词分隔符),可以拆分使用\<---锚定词首,\>----锚定词尾
扩展正则
扩展正则增加了几个元字符,同时也让一些元字符使用变得更简单(分组、限定出现次数的不需要使用转义字符)
元字符/其他 | 含义
+ | 匹配前一个字符出现一次或者多次
? | 匹配前一个字符出现零次或者多次
| | 或条件
常用字符匹配
[0-9]———匹配0到9数字
[a-Z]———匹配字母
[:alnum:]—–字母与数字
[:alpha:]—–字母字符(包括大小写字母)
[:balnk:]—–空格与制表符
[:digit:]—–数字字符
[:lower:]—–小写字母
[:upper:]—–大写字母
[:punct:]—–标点符号
[:space:]—–包括换行符、回车等所有的空白
常用场景
三剑客中使用:
grep匹配文件的某一行时
grep "z正则表达式"(-i 不区分大小写; -E 支持扩展正则)
awk匹配某一列内容 ~ !~ /正则表达式/
sed 定界/正则表达式/
脚本中使用—-if判断
if [ var =~ 正则表达式 ]
nginx服务配置文件中,通过正则表达式匹配相对应的目录
location [=|~| ~ | !~ | ~ | ^~] /URL(正则表达式)/{ …. }
= 表示精确匹配,优先级第一
^~ 表示URL某个常规字符串开头,理解为匹配url路径即可,优先级第二
~ 表示区分大小写的正则匹配,优先级第三(!~ 取反)
~* 表示不区分大小写的正则匹配,优先级第三(!~ 取反)
/ 通用匹配,任何请求都会被匹配到 优先级第四
apache的rewrite模块
RewriteCond 内部环境变量 正则表达式
最后更新: 2019年10月05日 10:06