目录
对正则表达式re包的简单引用一、re.match(pattern,string,flags=0)二、re.search(pattern,string,flags=0)三、检索和替换 re.sub()四、正则表达式之命名捕获re库的正确使用姿势Why使用姿势应用举例对正则表达式re包的简单引用
正则表达式一直是被我所忽略的东西,因为在之前的学习和开发中基本很少用到它。而且,之前学习正则表达式时感觉很懵逼,所以毅然决然的放弃了(QAQ),然而出来混总归还是要还的。最近在弄日志处理时,必须用到正则表达式,这就让我不得不拿起正则表达式了。在此记录一些自己学习的笔记与案例。
在python中导入re包
import re
一、re.match(pattern,string,flags=0)
尝试从字符串 开始 位置(看清楚,开始位置!!!)匹配一个模式。成功则返回一个match对象,失败则是none
turn True @classmethod def is_valid_linux_path(cls, path): if not path: return False LINUX_PATH_REGEX = r'^(/[^/ ]*)+/?$' return cls.is_valid_pattern(path, LINUX_PATH_REGEX) @classmethod def is_valid_windows_path(cls, path): if not path: return False WINDOWS_PATH_REGEX = r'^[a-zA-Z]:\(((?![<>:"/\|?*]).)+((?<![ .])\)?)*$' return cls.is_valid_pattern(path, WINDOWS_PATH_REGEX) @classmethod def is_valid_path(cls, p): if not p: return False return cls.is_valid_linux_path(p) or cls.is_valid_windows_path(p) @classmethod def is_valid_pattern(cls, value, pattern): if not value: return False REGEX = re.compile(pattern, re.UNICODE) m = REGEX.match(value) return True if m else False
主要的功能函数就是:
@classmethoddef is_valid_pattern(cls, value, pattern): if not value: return False REGEX = re.compile(pattern, re.UNICODE) m = REGEX.match(value) return True if m else False
这样一系列流程下来,我的感受就是,re 库的接口没有需要记忆,也没有需要临时翻阅文档的地方,并且我只用这一种风格(自己熟悉的,效率总是最高的),比如 re.compile肯定只需要传一个参数(flags不是必要的),REGEX_OBJ.match/search肯定只需要传need_search_string即可。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。









