# 正则表达式

3 min read
Table of Contents

正则表达式(Regular Expression),是一个定义搜索模式(pattern)的序列字符串。该模式经常用作搜索,替代字符串以及验证输入的正确性。

基础概念

  • 选择(or)
    垂直分割线|代表选择。a|b能够匹配’a’和’b’。

  • 分组(Grouping)
    括号()经常用于定义运算符的范围和优先级(以及其他的用途)。gray|grey和gr(a|e)y都是同等模式串可以匹配’gray’和’grey’。

  • 定量(Quantification)
    某个字符后的数量限定符用来限定前面这个字符允许出现的个数。最常见的限定符有问号?,星号*,加号+,{m},{m,},{m,n}。

  • 通配符(Wildcard)
    通配符.用来匹配任意单个字节。

语法

POSIX basic and extended

IEEE POSIX现在有两个标准集合:BRE(Basic Regular Expression)和ERE(Extended Regular Expression)。ERE新增了?, +和|,同是移除( )和{ }需要转义字符\的特征。

元字符
^匹配字符串中的起始位置
.匹配任意单个字符
[ ]匹配括号内包含的单个字符,括号表达式
[^ ]匹配未包含括号内字符的单个字符
$匹配字符串的结束位置或字符串结尾换行符之前的位置
( )定义一个标记的子表达式,它将会被视为单个元素,标记的子表达式也称为块或者捕获组
\n匹配第n个标记的子表达式匹配的内容,n是1到9的数字
*匹配前一项零次或者多次
{m}匹配前一项m次
{m,}匹配前一项至少m次
{m,n}匹配前一项至少m次,至多n次
?匹配前一项0次或者1次
+匹配前一项1次或者更多次
|匹配运算符|之前或者之后的表达式

字符类

字符类匹配继文字匹配之后最基础正则表达式。

POSIXNon-standardPrelASCII
[:digit:]\d[0-9]数字
\D[^0-9]无数字
[:space:]\s[ \t\r\n\v\f]空白字符
\S[^ \t\r\n\v\f]非空白字符
[:word:]\w[A-Za-z0-9_]字母数字加_
\W[^A-Za-z0-9_]非词汇字符

参考链接


More Posts

# 排序之堆排序

2 min read

堆排序可以分成两步,一:将给定的数组建立成堆。 二:不断的移除根节点,然后重组堆。并移除的根节点插入到数组中。

# SSH

3 min read

Secure Shell(简称 SSH, 安全外壳协议)是一种加密的网络传输协议,可以通过不安全的网络实现安全的系统管理和文件传输。典型的应用就是远程命令的登录和执行。SSH 通常用于类 Unix 系统上,但也可以用于 Windows 上。