加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式基础

发布时间:2020-12-13 22:24:26 所属栏目:百科 来源:网络整理
导读:一、正则表达式是什么 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式 分割、匹配、查找及替换 操作。 最重要的是字符串匹配。 二、正则表达式与通配符 1、通配符 用来匹配文件名 * 匹配任意多个(0~n)字符 ? 匹配任意一个

一、正则表达式是什么

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

最重要的是字符串匹配。

二、正则表达式与通配符


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}
  • 192.168.0.1


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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读