分类菜单
软件开发
培训首页> 软件开发培训头条> Python正则表达式有哪些

Python正则表达式有哪些

软件开发
发表时间:2017-10-09 3922人浏览

  python正则表达式简单使用,

  元字符

  1.匹配元字符:

  . 它匹配除了换行字符外的任何字符,在 alternate 模式(re.dotall)下它甚至可以匹配换行

  ^ 匹配行。除非设置 multiline 标志,它只是匹配字符串的开始。

  $ 匹配行尾,行尾被定义为要么是字符串尾,要么是一个换行字符后面的任何位置。

  [] 它们常用来指 定一个字符类别,所谓字符类别就是你想匹配的一个字符集

  \ 反斜杠后面可以加不同的字符以表示不同特殊意义。它也可以用于取消所有的元字符,这样你就可以在模式中匹配它们了

  | 可选项,或者 "or" 操作符。

  () 一般情况下表示一个记忆组 (remembered group)。你可以利用 re.search 函数返回对象的 groups() 函数获取它的值

  2.重复元字符:

  * 重复0或n次

  + 重复1或n次

  ? 重复0或1次

  {m,n} 该限定符的意思是至少有 m 个重复,至多到 n 个重复

  3.用 "\" 开始的预定义字符集

  \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_]。

  \a 只匹配字符串。当不在 multiline 模式,\a 和 ^ 实际上是一样的。然而,在 multiline 模式里它们是不同的;\a 只是匹配字符串,而 ^ 还可以匹配在换行符之后字符串的任何位置。

  \z 只匹配字符串尾。

  \b 单词边界。这是个零宽界定符(zero-width assertions)只用以匹配单词的词和词尾。单词被定义为一个字母数字序列,因此词尾就是用空白符或非字母数字符来标示的。

  \b 另一个零宽界定符(zero-width assertions),它正好同 \b 相反,只在当前位置不在单词边界时匹配。

  注:[akm$]将匹配字符"a", "k", "m", 或 "$" 中的任意一个;"$"通常用作元字符,但在字符类别里,其特性被除去,恢复成普通字符。

  regexobject(re)对象常用方法

  matchobject=re.match(pattern,string,flag='0') :决定 re 是否在字符串刚开始的位置匹配

  matchobject=re.search(pattern,string,flag='0'):扫描字符串,找到这个 re 匹配的位置

  tuple=re.findall(pattern,string,flag='0') : 找到 re 匹配的所有子串,并把它们作为一个列表返回

  matchobjectlist=re.finditer(pattern,string):找到 re 匹配的所有子串,并把它们作为一个迭代器返回

  matchobject对象的常用方法

  findstring = matchobject.group() :返回被 re 匹配的字符串

  i = matchobject.start() :返回匹配开始的位置

  i = matchobject.end() :返回匹配结束的位置

  start,end = matchobject.span() :返回一个元组包含匹配 (开始,结束) 的位置

  编译标志

  dotall, s :使 . 匹配包括换行在内的所有字符

  ignorecase, i: 使匹配对大小写不敏感

  locale, l :做本地化识别(locale-aware)匹配

  multiline, m: 多行匹配,影响 ^ 和 $

  verbose, x :能够使用 res 的 verbose 状态,使之被组织得更清晰易懂

  使用心得

  1.先编译后使用:re.compile('pattern')

  2.切勿重复编译:放入全局空间或放入cell空间并实例出一个闭包实例


  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

温馨提示

个性定制课程


温馨提示