正则表达式(字符)是一种字符模式,用于查找过程中匹配指定字符。

常用正则元字符

元字符指在正则表达式中拥有特殊含义,不再是表明含义。

元字符/其他  |  含义
  ^ [^]      | 第一个表示开头  第二个表示对[]里的字符取反
  $          | 表示字符结尾
  *          | 表示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

原始链接: https://LiYuanSh.github.io/2019/08/07/运维笔记二-正则表达式/

× 请我吃糖~
打赏二维码