python3中的正则表达式

精确匹配:

   \d: 匹配一个数字
     \w: 匹配一个字母或数字
     . : 匹配任意一个字符
     \s: 匹配一个空格(包括tab等空白符)
匹配变长的字符:
     * : 匹配任意个字符,包括0个
     + : 匹配至少一个字符
     ? : 匹配0个或一个字符
     {n} : 匹配n个字符
     {n,m} : 匹配n~m个字符

eg: 说明“\d{3}\s+\d{2,5}”的含义
     \d{3}: 表示匹配3个数字,例如'028'
     \s+:   表示匹配至少一个空格
     \d{2,5}: 表示匹配2~5个数字,例如'1245'

    比如可以匹配以任意个空格隔开区号的电话号码。例如'028 57652'

[] :用来表示范围
     [0-9a-zA-Z\_]: 可以匹配一个数字、大小写字母或者下划线
     [0-9a-zA-Z\_]+: 可以匹配至少由一个数字、大小写字母或者下划线组成的字符串
         eg: 'a54', 'fasd', 'who_lj123'...
     [a-zA-Z\_][0-9a-zA-Z\_]*: 可以匹配由字母或下划线开头,后边任意个有数字、字母或者下划线组成的字符串,即python的合法变量名
     [a-zA-Z\_][0-9a-zA-Z\_]{0, 19}: 更精确地限制了变量的长度是1-20个字符

a|b: 匹配a或者b
     eg: (P|p)ython: 可以匹配'Python'或者'python'

^: 匹配行首
     eg: ^\d: 表示行必须以数字开头
$: 匹配行尾
     eg: $\d: 表示行必须以数字结尾
^SOME_STR$: 匹配只包含SOME_STR的行

 

python中的正则表达式模块是re

match()方法判断是否匹配,如果匹配成功,返回一个Match对象,否则返回None。常见的判断方法就是:
test = '用户输入的字符串'
if re.match(r'正则表达式', test):
     print('ok')
else:
     print('failed')
切分字符串:
     re.split(r'\s+', 'TEST_STR'): 指定分隔符为空格
     re.split(r'[\s\,\;]+', 'TEST_STR'): 指定分隔符为空格、逗号或者分号

posted @ 2017-12-20 14:55  长翅膀的蜗牛  阅读(3545)  评论(0编辑  收藏  举报