正则表达式入门

正则表达式?

正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。

精确匹配

  • \d 匹配一个数字字符
  • \D 匹配一个非数字字符
  • \w 匹配包括下划线的任何单词字符
  • \W 匹配任何非单词字符
  • \s 匹配任何空白字符
  • \S 匹配任何非空白字符
  • \n 匹配一个换行符
  • \r 匹配一个回车符
  • . 匹配除了\n的任何字符

变长

匹配多个字符

  • *表示任意个字符(包括0)
  • +表示至少一个字符
  • ?表示0或者1个字符
  • {n}表示n个字符
  • {n,m}表示n-m个字符

更精确的匹配

用[]表示范围

  • [0-9a-zA-z_]可以匹配一个数字、字母或者下划线
  • [0-9a-zA-z_]+可以匹配至少由一个个数字、字母或者下划线组成的字符串
    A|B可以匹配A或者B
    ^表示开头
    $表示结尾

贪婪匹配

Python的re模块和JS的正则匹配默认是贪婪匹配,尽可能多的匹配字符,如

print(re.match(r'^(\d+)(0*)$','12340000').groups())
>>> ('12340000', '')

加个?使用非贪婪匹配

print(re.match(r'^(\d+?)(0*)$','12340000').groups())
>>> ('1234', '0000')
posted @ 2019-05-10 22:29  林静生寒  阅读(228)  评论(0编辑  收藏  举报