第十五讲 python学习总结

day15-正则表达式

1、什么是正则表达式
string.find(‘metch’)
[email protected]
[email protected]
[email protected]
英文:regular expression 正则表达式
字符串的查找只能查找特定的字符串
正则表达式可以用来查找一类字符串
学习:写正则表达式,里面的每一个规则
不同的需求,写出来的正则表达式不一样,所以,不要尝试着读懂别人的正则
世界上三大读不懂的东西
医生的处方、道士的符、程序猿的正则表达式
2、使用场景
匹配邮箱,匹配url
http://www.baidu.com:80/index.html?username=goudan&password=123456&abc=123
爬虫,提取指定内容,通过正则
nginx:服务器,配置文件,通过正则匹配
3、使用原则
能不使用正则尽量不要使用正则
4、基本使用

re模块(官方模块)
    match(正则表达式, 字符串)
        [注]只能从字符串最开头查找,如果查找成功,返回一个对象,如果查找失败,返回None

    search(正则表达式, 字符串)
        从字符串任意位置开始找,找到停止,找不到返回None
        返回一个对象
    findall(正则表达式, 字符串)
        从字符串中查找到所有的符合正则表达式的字符串,返回一个列表

    compile(正则表达式)
        根据正则表达式构建一个正则对象,然后通过正则对象调用match\search\findall

    group
        ret.group()  查看匹配内容
        ret.span()   返回匹配内容的位置

正则表达式规则学习
    单字符匹配
        所有的字符串都是单字符,但是有一些特殊的单字符,可以匹配一类字符
        .   匹配除了换行(\n)以外所有的字符
        \d  (digit)匹配所有的数字字符
        \D  匹配所有的非数字字符
        \w  (word)匹配所有的数字、字母、下划线、中文
        \W  匹配所有的非 \w 
        \s  (space)匹配所有的空白字符 空格、\n、\t、tab键
        \S  匹配所有的非 \s
        []  匹配中括号里面任意一个字符
            [aeiou\d]
            [0-9] == \d
            [a-z]
            [A-Z]
            [a-zA-Z]
            [a-zA-Z0-9_] == \w
#测试案例
# string = 'hello baby, i love you love very much'

fp = open('day15.txt', 'r', encoding='utf-8')

string = fp.read()

index = string.find('search')

print(index)
'''
#import re
#ret = re.match('恋爱', '恋爱是一种非常美妙的感觉')
#print(ret)

#import re
#ret = re.match('恋爱', '恋爱是一种非常美妙的感觉')
#print(ret.group())  #输出结果为恋爱


#import re
#ret = re.search('坐火车', '我爸说,坐火车是一种美妙的感觉,我喜欢坐火车,但是,我第一次坐火车的时候吐了')
#ret = re.findall('坐火车', '我爸说,坐火车是一种非常美妙的感觉,所以我喜欢坐火车,但是,我第一次坐火车的时候吐了')
#print(ret)


import re
pattern = re.compile('love') # 构建一个正则对象
ret = pattern.findall('晕车是一种非常美妙的感觉,想自杀的感觉,我现在不晕车了')
print(ret)
'''

string = '知道不知道呢,伙计们'
index = string.find('伙计')
#index = str.find(string, '伙计')
print(index)
import re

# aeiou
#pattern = re.compile('[aeiou\d]')
pattern = re.compile('[a-zA-Z]')

#string1 = '嫦娥28号发射成功\玉兔9号发射成功\嫦娥5号发射成功'
ret = pattern.match('0ie love you')
# ret = pattern.findall(strng1)

print(ret)

猜你喜欢

转载自blog.csdn.net/weixin_41853490/article/details/81026921
今日推荐