正则表达式

python 正则匹配 import re

1. 常见接口函数

import re


//从字符串的起始位置匹配一个模式 如果从开始位置就不匹配模式 直接返回None
re.match(pattern, info, flag) 

//扫描整个字符串 返回第一个成功的匹配
re.search(pattern, info, flag)

//替换字符串中的匹配项
re.sub(pattern, resource, string, count=0, flags=0)

/*
    pattern: 模式
    resource: 替换的字符串
    string: 要被替换的原始字符串
    count: 模式匹配后替换的最大次数 默认0替换所有的匹配
*/


//编译正则表达式 生成一个正则表达式对象 供函数match search使用
re.compile(pattern, flags)


/*
    string: 待匹配的字符串
    startPos: 匹配开始的位置
    endPos: 匹配结束的位置
*/
re.findall(string, startPos, endPos)


//匹配模式后分割字符串
re.split(pattern, string, split, flags)

2. 常见的正则匹配模式

^: 匹配字符串的开头 $: 匹配字符串的结尾  .: 匹配任意字符(不包含换行符)  

*:表示前面字符出现0次或者多次 举例: (\.\.\/)*:表示../可以出现0次或者多次

+:表示前面字符出现1次或者多次 举例:(\.\.\/)+:表示../可以出现1次或者多次

?:表示前面字符出现0次或者1次 举例:(\.\.\/)?:表示../可以出现0次或者一次

[...]: 表示一组字符 [hig]: 匹配h 或 i 或 g     

[^...]: 匹配不包含括号内的字符 [^/abc]: 匹配不包含/ 或 a 或 b 或 c

a|b: 匹配a 或 b

\w:匹配字母数字及下划线      \W:匹配非字母数字及下划线

\s:匹配任意空白字符              \S:匹配任意空字符

\d:匹配任意数字 等价[0-9]     \D:匹配任意非数字

[0-9]:匹配数字                        [^0-9]:匹配除了数字以外的字符

[a-z]:匹配小写字母                 [^a-z]:匹配除了小写字母以外的字符

[A-Z] :匹配大小字母               [^A-Z]:匹配除了大小字母以外的字符

[0-9A-Za-z]:匹配任意数字和字母

# coding = utf-8

# 正则匹配学习

import re


def regex_search(message, pattern):
    search = re.search(pattern, message)
    if search:
        print("Search: {0}".format(search.group(1)))
    else:
        print("Search Failed")

def regex_findall(message, regex):
    search = re.findall(regex, message)
    if search:
        print("Search: {0}".format(search))
    else:
        print("Search Failed")


info = "[KeywordEnum(None, Top_Bottom, Left_Right, Custom_UV)] Stereo(\"Stereo Mode\", Float) = 0"

pattern = r"\[KeywordEnum\((.*)\)+\]"
regex_search(info, pattern) # None, Top_Bottom, Left_Right, Custom_UV

info = "../../info/test /age/my/name/excel.xls"
pattern = r"(\.\.\/)*(.+)$" # info/test /age/my/name/excel.xls

"""
     a. 匹配字符串中所有符合匹配点的字符串 re.findall()
        "我爱中国I love China 我很开心 Happy Day"
            匹配所有的中文: r"[^a-zA-Z\s]+"
            匹配所有的英文: r"[a-zA-Z\s]+"
    b. 匹配邮箱
        r"^[0-9a-zA-Z_-]+@[0-9a-z]+.com$"
    c. 匹配网址
        r"https(s?)://[^\s]+"
    d. 截取指定标志区间内的字符串 
"""



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值