Python讲解,python 百度文库

  Python讲解,python 百度文库

  Re模块包含成对的正则表达式。本章将介绍re模块的主要特性和正则表达式。

  什么是正则表达式?

  正则表达式是可以匹配文本片段的模式。最简单的正则表达式就是一个普通的字符串,可以匹配自身。换句话说,正则表达式“python”可以匹配字符串“python”。您可以使用这种匹配行为来搜索文本中的模式,并使用计算出的值来并发处理特定的模式,或者对文本进行分段。

  * *通配符

  正则表达式可以匹配多个字符串,您可以使用一些特殊字符来创建这样的模式。比如一个点(。)可以匹配任何字符。我们用问号(?)匹配任何字符,效果都一样。那么这样的符号就叫做通配符。

  * *转义特殊字符

  通过上面的方法,如果要匹配“python.org”,可以直接用“python.org”吗?这个是可以的,但是也会匹配“pythonzorg”,不是预期的结果。

  好吧!我们需要对它进行转义,可以在它前面加一个斜杠。因此,本例中可以使用“python \ \ org”,这样就只有“python \ \”了。org”将被匹配。

  * *字符集

  我们可以使用方括号([])将字符串括起来以创建字符集。您可以使用范围,如“[A-Z]”来匹配从A到Z的任何字符,也可以逐个组合范围,如“[A-ZA-Z0-9]”来匹配任何大小写字母和数字。

  反转字符集,可以使用开头的字符。例如,[ABC]可以匹配除A、B和c之外的任何字符。

  * *选择器

  有时,如果您只想匹配字符串 python 和 perl ,您可以使用选项的特殊字符:管道符号()。因此,需要的模式可以写成‘python perl’。

  * *子模式

  然而,有时您不需要对整个模式使用选择器,只需要对模式的一部分使用选择器。这时,可以用括号将所需的部分或子模式括起来。先例可以写成‘p(ython erl)’

  * *可选

  在子模式后添加一个问号,它就变成可选的了。它可能出现在匹配字符串中,但不是必需的。

  r(heep://)?(www\。)?python\。组织

  只能匹配以下字符:

   http://www.python.org

   http://python.org

   www.python.org

   python.org

  * *重复子模式

  (模式)*:允许模式重复0次或更多次。

  (模式):允许模式重复一次或多次。

  (pattern){m,n}:模式允许重复m~n次。

  例如:

  Rw*\。python\。“org”匹配“www.python.org”、“python.org”和“wwwww.python.org”

  Rw \。python\。“org”匹配“w . python . org”;但无法匹配“. python.org”

  Rw{3,4}\。python\。“org”只能匹配“www.python.org”和“wwww.python.org”

  Re模块内容

  re模块中的一些重要函数:

  Re.compile将正则表达式转换为模式对象,可以实现更高效的匹配。

  Re.search将在给定字符串中查找与给定正则表达式匹配的第一个子字符串。如果找到MatchObject(真值),则该函数返回,否则返回None(假值)。由于返回值的性质,此函数可用于条件语句中:

  ifre.serch(pat,string):

  printfoundit!

  Re.math将匹配给定字符串开头的正则表达式。因此,re.math (p , python )返回true,而re.math (p , www.python )返回false。

  Re.split将根据模式的匹配来拆分字符串。

  进口re

  some_text=alpha,beta,gamma delta

  重新拆分([,],some_text)

  [alpha , beta , gamma delta ]

  Re.findall以列表形式返回给定模式的所有匹配。例如,要查找字符串中的所有单词,可以按如下方式进行:

  进口re

  帕特=[a-zA-Z]

  text= 嗯.呃-你确定吗?他说,听起来不太自信。

  re.findall(pat,text)

  [嗯,呃,是,你,肯定,他,说,听起来,不安全]

  re.sub的功能是用给定的替换内容替换匹配模式的子串(最左边和重叠的子串)。

  进口re

  pat=“{ name }”

  text=亲爱的{name} .

  回复(帕特,“甘比先生”,文本)

  亲爱的甘比先生.

  Re.escape函数,一个应用程序函数,可以转义字符串中可能被解释为常规运算符的所有字符。

  如果字符串很长并且包含许多特殊字符,并且您不想输入大量反斜杠,您可以使用此函数:

  re.escape(www.python.org )

  www\\。python\\。组织

  re . escape(‘但是哪里有歧义?’)

  但是\\ where\\ is\\ the\\ ambiguity\\?

  匹配对象和组

  简单来说,一个组就是一个放在括号里的子模块,一个组的序号取决于它左边括号的个数。组0是整个模块,所以在下面的模式中:

  有(是一个(小)(库珀))谁(生活)

  群组包括:

  0那里是weecooperwholivedinFyfe

  1wasaweecooper

  2周

  3库珀

  4生活费

  重新匹配对象的重要方法

  这里有一个例子:

  进口re

  m=re.match(rwww\。(.*)\.“{3}”、“www.python.org”)

  m.group()

   www.python.org

  m.group(0)

   www.python.org

  m.group(1)

   python

  m.start(1)

  四

  m.end(1)

  10

  m.span(1)

  (4, 10)

  Group方法返回匹配模式中给定组的字符串。如果没有组号,默认值为0;如上:m . group()==m . group(0);如果给定了组号,则返回单个字符串。

  start方法返回给定匹配集的起始索引,

  end方法返回给定匹配集的结束索引加1;

  以span tuple (start,end)的形式返回组的开始和结束位置的索引。

  -

  正则表达式应该是不容易理解的知识点;python枯燥的基础终于讲完了。虽然学习不扎实,但大体有印象;下面会很有意思,读文件,写图形窗口,连接数据库,web编程。

  否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: