简单模式

作者: 皮修猪 | 来源:发表于2018-04-12 14:50 被阅读0次

1、字符匹配

元字集

. ^ $ * + ? { [ ] \ | ( )


  首先看的是 “[” 和 “]” ,其用来表示一个字符集。字符可以单个表示,也可以用 - 来连接字符来表示一个范围。如:[a,b,c,d,e]等价于[a-e]。另一个特性:  [^5] 表示匹配除了5以外的任意字符。

最重要的字符就是 \ ,在python中,可以在反斜杠后面加字符来表示特殊的含义。如,可以用 \\ 和 \[ 来匹配  \ 和 [ 。下面是一些预定义好的一些特殊字符:

\d 匹配任何十进制数;它相当于类 [0-9]。

\D 匹配任何非数字字符;它相当于类 [^0-9]。

\s 匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。

\S 匹配任何非空白字符;它相当于类 [^ \t\n\r\f\v]。

\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。

\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]。

2、重复

  首先,讨论的是 “ * ”,*并不匹配*,而是表示*前面的字符会出现零次或者多次(>=1)。

如liy*ao,将会匹配"liao"出现(y出现0次)liao、(y出现1次)liyao、(y出现2次)liyyao等等。

像*这样的匹配模式成为贪婪模式,会尽可能的去更多的匹配。如果模式后面的没有被匹配,那么匹配引擎会退回,并尽可能的少匹配。如

另一个重复的字符是 +,表示匹配一次或者多次。注意 *是零次或者更多次。

还有其他的限定符,如 ? 。表示匹配一次或者零次;可以理解为事物是可选的,如home-?brew,可以匹配homebrew 或者 home-brew。

还有更复杂的限定符:{m,n},注意m、n之间不能有空格。其中 m 和 n 是十进制的整数。表示至少m次重复,至多n次重复。如a\{1,3}b,会匹配出,a\b , a\\b , a\\\b 这三种情况。m 和 n是可以省略的,省略m表示下限为0,省略n上线为无穷大(其实为20亿,近似为无穷大)。不难发现,{0,}=* ; {1,}=+ ; {0,1}=?。

相关文章

  • 设计模式

    设计模式(视频总结) [TOC] 一、简单工厂模式(Simple Factory) 简单工厂模式: 简单工厂模式属...

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

  • [Android]三种工厂模式总结。

    Android中,工厂模式分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。 一.简单工厂模式。 定义:简单工厂...

  • 三、创建型模型

    简单工厂模式 工厂方法模式 抽象工厂模式 单例模式 1.简单工厂模式 简单工厂模式并不属于23种设计模式。 不难看...

  • Android设计模式:工厂设计模式

    目录 简单工厂模式工厂方法模式抽象工厂模式 简单工厂模式 简单工厂模式是所有工厂模式的基础,不属于23种设计模式范...

  • 设计模式之工厂模式

    设计模式之工厂模式 1. 简单工厂模式 1.1 模式定义 简单工厂模式又称为静态工厂方法,它属于创建型模式。在简单...

  • 工厂模式

    工厂模式包含三种模式:简单工厂模式、工厂方法模式和抽象工厂模式。 简单工厂模式 定义简单工厂模式:由一个工厂类根据...

  • Java设计模式——工厂模式

    工厂模式简单工厂模式工厂方法模式抽象工厂模式 1.简单工厂模式 1.基本介绍1)简单工厂模式也叫静态工厂模式,是属...

  • 设计模式(java)- 单例模式

    之前学习是简单工厂模式、工厂方法模式、抽象工厂模式,复习一下 简单工厂模式 简单工厂模式大概就是创建一个简单工厂类...

网友评论

    本文标题:简单模式

    本文链接:https://www.haomeiwen.com/subject/epxtkftx.html