170131

来源:互联网 发布:php mysql防注入 编辑:程序博客网 时间:2024/06/05 15:37
 1625-5 王子昂 总结《2017年1月31日》 【连续第123天总结】
A.python  正则表达式 20%
B.  正则表达式是为了解决如何通过编程使计算机具有在文本中检索某种模式的能力。
    正则表达式是一些由字符和特殊符号组成的字符串,可以按某种模式匹配一个有相似特征的字符串的集合。
    python通过标准库的re模块支持正则表达式。
    正则表达式里有许多元字符来表示可选的字符集。
    python中的管道符号(|)表示或的意思,即可以匹配管道符号分割的多个不同正则表达式,只要满足其中一个即可。又叫做联合union,或逻辑或OR
    点字符(.)匹配除换行符外的任意一个单字字符,包括字母,数字,空白符,符号等等。而当想要真正匹配句号时,需要在其前面加上一个反斜线来转义。
   ^和\A表示字符串开头,加在匹配字符集的前面,表示只查找以该字符集开头的字符串。
   $和\Z表示字符串结尾,加在匹配字符集的后面,表情只查找以该字符集结尾的字符串。
  #不知道能否以上述两个字符混用,按概念和示例来说应该是不行,回去以后上机实验一下。
  \b和\B用来匹配单词边界。前者的匹配模式是一个单词边界,也就是说无论单词前面有无字符串。而后者是前者的反义,只匹配出现在一个单词中间的模式。示例完全看不懂,无法理解\bthe为什么"匹配字的字符串"是任何以"the"开始的字符串。可能是表示内部的子字符集? 没法上机真是搞不懂…
  方括号在正则表达式中表示创建字符类,用来匹配方括号里的任何一个字符。但是注意,因为方括号只有逻辑或的功能,因此在指定两个可能的多字符的字符串时使用方括号会造成歧义。这种时候最好使用管道符号。
  另外如果左方括号紧跟着^表示反义,即不匹配指定字符集里的任意字符。而指定范围(-)表示指定的字符范围,相当于省略列举。(如0-9,A-Z)范围实际调用的是字符的ASCII码。
  特殊符号*+?,表示前一个表达式出现多次。*表示零次或以上,+表示一次或以上,?表示零次或一次。
  花括号内如果是一个数字({N}),表示指定前一个表达式出现的次数为N。如果是一个范围({m,n})表示指定前一个字符串出现的次数范围是(m,n)
  ?除了表示匹配前一个0或1次以外,还可以用来紧跟在重复的元字符后面,表示"匹配字符越短越好"。意思是,当使用了表示重复的元字符时,正则表达式引擎会尽量吸收更多的字符,也就是贪心。而使用?以后,将会使其尽量少的匹配字符,留下尽可能多的字符给后面的模式。
  圆括号可以实现两种功能,1.对正则表达式进行分组和2.匹配子组
  上述功能可以实现保存匹配字符串以便之后取用的功能,而匹配子组甚至可以把保存的字符串进行分割,以达到分别取用的目的。
  C.明日计划
    python 正则表达式
    windows核心编程
0 0