《python核心编程》第一章 正则表达式2

2018-6-10 接着昨天的继续看

1.2.8使用圆括号指定分组

圆括号可以实现以下两个功能:1、对正则表达式进行分组 2、匹配子组

圆括号的一个副作用是:匹配模式的子字符串可以保存起来供后续使用。

举例:(\w+)-(\d+),就能分别访问每一个子组

1.2.9 扩展表示法:以问号开始(?…)

通常用于判断之前提供标记,实现一个前视(或者后视)匹配。

只有(?P<name>)表示一个分组匹配。

1.3.1 re模块:核心函数和方法search(), match(), compile()

re.compile()提供了正则表达式的预编译功能。模块函数会对已编译的对象进行缓存。

2018-6-11

match( ) 和search( )的区别。re.match()不能匹配字符串,而re.search()可以。

match( )总是从字符串的开始位置进行匹配。

1.3.6 匹配字符串

点号(.)不能匹配一个换行符\n或者非字符即空字符串。

1.3.10 匹配字符串的起始和结尾以及单词边界


\b表示有边界,\B表示没有边界

1.3.11 使用findall( )和finditer( )查找每一次出现的位置

finditer返回了一个可调用的对象,使用 for i in finditer()的形式,可以一个一个的得到匹配返回的 Match对象。


1.3.14 扩展符号

(?i)表示re.I/IGMORECASE,(?s)表示/re.S/re.DOTALL表示点号“.”可以代表“\n”,反之代表除了\n的所有符号。

(?x)表示re.X/VERBOSE:该标记通过抑制在正则表达式中使用空白符来创建更加易读的正则表达式。


(?:...)符号可以对部分正则表达式进行分组,但并不会保存改分组用于后续的检索或则应用。当不想保存今后永远不会用到的多于匹配时,这个符号非常有用。


使用(?P< >)和(?P=name)对匹配的内容进行分组。


未完待续。。。。。

猜你喜欢

转载自blog.csdn.net/qq_21210467/article/details/80641972