正则表达式入门

概念

  • 正则表达式是描述一组字符串特征的模式,用来匹配特定的字符串。
  • 元字符是在正则表达式中有特殊含义的字符,也是保留字符,是不参与匹配的。

支持的语言及工具

几乎所有的编程语言以及编辑器都支持正则表达式,但是有可能支持的力度、方式不太一样,像perl/java/js等。

类unix系统下的工具比较多用的也比较频繁,像grep/awk/sed等。

特点

  • 同一个匹配结果可以通过不同的正则表达式实现
  • 同一个正则表达式有可能匹配多个结果
  • 大小写敏感

单字符匹配

  • 普通元字符
元字符 含义 举例 说明
[] 字符组或者字符集 [0123],表示只会配置中括号中出现的字符
- 连字符表示范围 [0-9],表示要配置0到9的数字 只在中括号中表示连字符
^ 取非 [^0-9] 表示除了0到9的数字都匹配 对整个字符集生效
. 通配符,匹配任意单个字符 有些情况下不能匹配行起始符
\ 转义其他元字符 \. 表示.这个字符本身 需要放在其他元字符之前使用,表示后面跟的字符表示一个普通字符。
  • 下面一些与\搭配的字母或者数字,一起可以称为元字符,也可以称为字符简写形式
元字符 含义 说明
\a 报警符
[\b] 退格字符(回退并删除) 需要放在中括号中
\c x 控制字符
\d 数字字符 同 [0-9]的功能
\D 非数字字符 同 [^0-9]
\o xxx 八进制值
\w 单词字符 同[a-zA-Z0-9_]
\W 非单词字符 同[^a-zA-Z0-9_]
\0 空字符
\x xx 十六进制值
\u xxx Unicode值
\n 换行符
\r 回车符
\s 空白字符 同[\f\n\r\t\v]
\S 非空白字符 同[^\f\n\r\t\v]
\t 水平制表符 即Tab键
\v 垂直制表符
\V 非垂直制表符
\f 换页符
\h 水平空白符
\H 非水平空白符
  • POSIX字符类

说明:并不是所有的语言或者工具都支持POSIX字符类
在类unix环境的bash脚本中使用,还是比较一目了然
使用时必须以[[开头,]]结尾,如[[:alpha:]]

字符类 含义 说明
[:alnum:] 任何一个字母或者数字 同[a-zA-Z0-9]
[:alpha:] 任何一个字母 同[a-zA-Z]
[:lower:] 任何一个小写字母 同 [a-z]
[:upper:] 任何一个大写字母 同 [A-Z]
[:blank:] 空格或者制表符 同[ \t]
[:space:] 任何一个空白字符,包括空格 同[ \t\f\n\r\v]
[:cntrl:] ASCII控制字符 ASCII 0到31,再加上127
[:digit:] 任何一个数字 同[0-9]或者\d
[:xdigit:] 任何一个十六进制数字 同[a-fA-F0-9]
[:graph:] 不包含空格的可打印字符 同[:print:]
[:print:] 可打印字符

多字符匹配

将元字符放在需要匹配的字符后面,表示此字符重复匹配多少次

元字符 含义 说明
+ 匹配一个或者多个
* 匹配0个或者多个
? 匹配0个或者1个
{m} 精确匹配m个
{m,n} 至少匹配m个,至多匹配n个 其中m,n可以只配置一个值

你可能感兴趣的:(正则表达式入门)