python常用模块

re模块

正则表达式是一种强大的文本处理工具,它通过特定的符号来定义搜索模式。以下是一些常用的正则表达式符号及其含义:

表达符号 说明
. 匹配除换行符\n之外的任意字符
- 表示字符范围,如[0-9]表示匹配任意数字
* 匹配前面的子表达式零次或多次,例如ab*会匹配"a""ab""abb"
+ 匹配前面的子表达式一次或多次
^ 匹配字符串的开始
$ 匹配字符串的结束
\ 转义字符,用于匹配特殊字符,如\_表示匹配下划线
? 匹配前面的子表达式零次或一次
{m} 精确匹配前面的字符m次
{m,n} 匹配前面的字符至少m次,最多n次
\d 匹配任意数字,等同于[0-9]
\D 匹配任意非数字字符,等同于[^0-9]
\w 匹配任意字母或数字,等同于[A-Za-z0-9]
\W 匹配任意非字母数字字符,等同于[^A-Za-z0-9]
\s 匹配任意空白字符
\S 匹配任意非空白字符
\A 匹配字符串的开头
\Z 匹配字符串的结尾
\b 匹配单词边界
\B 匹配非单词边界
[] 定义一个字符集合,用于匹配集合中的任意字符

正则表达式注意事项

字符集

字符集通过中括号[]定义,可以包含任意字符或字符范围。例如:

  1. [pj]ython 匹配"python""jython"
  2. [a-z] 匹配任意小写字母。
  3. [a-zA-Z0-9] 匹配任意大小写字母或数字。
  4. [^abc] 匹配除了"a""b""c"之外的任意字符。

可选项和重复子模式

在子模式后添加问号?使其成为可选项,例如:

re.findall(r'(aa)?(bb)?ccddee', 'aabbccddee')
# 输出:['aabbccddee', 'aaccddee', 'bbccddee', 'ccddee']

字符串的开始和结尾

  1. w+ 匹配以w开头的字符串。
  2. http 匹配以http开头的字符串。
  3. com$ 匹配以com结尾的字符串。

常用函数

函数 作用
re.compile(pattern[, flags]) 编译正则表达式模式
re.search(pattern, string[, flags]) 搜索字符串中的第一个匹配项
re.match(pattern, string[, flags]) 从字符串开始处匹配
re.findall(pattern, string) 查找字符串中所有匹配项
re.split(pattern, string[, maxsplit=0]) 根据匹配项分割字符串
re.finditer(pattern, string, flags=0) 查找字符串中所有匹配项,返回迭代器
re.sub(pattern, repl, string, count=0, flags=0) 替换字符串中的匹配项
re.escape(string) 转义字符串中的特殊字符

re.compile(pattern[, flags])

编译正则表达式模式,提高多次使用时的效率:

import re
pattern = re.compile(r'^(.*?)\s+\((.*?)\)\s+\[(.*?)\]\s+\.\.\.\.\s(.*?):\s+(.*?)$')
log_message = "-0     (-----) [004] .... 2628922.673375: cpu_idle: state=0 cpu_id=4"
match = pattern.match(log_message)
print(match)  # 

search(pattern, string[, flags]) 和 match(pattern, string[, flags])

  • `
版权声明:程序员胖胖胖虎阿 发表于 2024年12月27日 下午2:07。
转载请注明:python常用模块 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...