正则表达式基础

一、正则表达式是什么

正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。

最重要的是字符串匹配。

二、正则表达式与通配符


1、通配符

  • 用来匹配文件名
  • *   匹配任意多个(0~n)字符
  • ?  匹配任意一个字符
  • []  匹配中括号内的任意一个字符
  • Is、find、cp命令


2、正则表达式

  • 用来匹配文件中的字符串
  • 对大多数语言,都有正则表达式,但是绝大多数,没有通配符的概念。
  • grep、awk、sed命令支持正则表达式

正则是包含匹配,通配符是完全匹配


三、基础正则表达式

1、*    前一个字符匹配0次或任意多次

  •      ”a*“ 匹配所有内容  整个文档 
  •     "aa*" 匹配至少包含有一个a的行
  •      ”aaa*“ 匹配至少包含两个连续a的字符串  


2、.  匹配除了换行符外任意一个字符

  •     s..d会匹配在s和d这两个字符间一定有两个字符的单词
  •    s.*d会匹配在s和d这两个字符间有任意字符的单词
  •    .* 匹配所有内容

3、^ 匹配行首 

  •     ^hell会匹配以hello开头的行
  •     ^a匹配以a开头的行

4、$ 匹配行尾 

  •  b$匹配b为尾的行
  • ^$匹配空白行


5、[] 匹配中括号中指定的任意一个字符

  • s[ao]id   可以匹配到said和soid
  • [0-9]      可以匹配到  1  234  dd2  6aaa都可以(再说一遍正则是包含匹配)
  • ^[0-9]    匹配到以数字开头的行
  • [0-9]$    匹配到数字结尾的行
  • ^[^a-z]  匹配到不以小写字母开头的行
  • ^[^a-zA-Z]匹配到不以字母开头的行
  • [^a-z]       列出不含小写字母的话行
  • 中括号里的^代表取反


6、\ 转义符 让特殊符号丧失特殊作用

  • ”\.$“  
  • .此处就代表点,以点结尾的行


7、”\{n\}“ 表示前面的字符恰好出现n次

  • "a\{3\}"匹配a字母至少连续出现三次的字符串
  • "xc\{3\}u" 匹配x和u之间有三个c的行
  • "[0-9]\{3\}"匹配包含连续的三个数字的字符串


8、"\{n,\}" 表示前面的字符至少出现n次 跟上面很像 要看实验

  • ”\{n,m\}“匹配其前面的字符至少出现n次,最多出现m次
  • "sa\{1,3\}i"  匹配在字母s和i之间有最少一个a,最多三个a


四、例子:提取规范的日期和IP


1、匹配日期

  • [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}
  • YYYY-MM-DD
2、匹配IP地址 

  • [0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}
  • 192.168.0.1


说明:所有IP和日期都能被匹配,但是能被匹配的不一定是日期和IP地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值