python 正则表达式

常量

进行忽略大小写匹配

re.IGNORECASE

\w, \W, \b, \B, \d, \D, \s\S 只匹配ASCII,而不是Unicode

 re.ASCII

DOT表示.,ALL表示所有,连起来就是.匹配所有,包括换行符\n默认模式下.是不能匹配行符\n

re.DOTALL

多行模式,当某字符串中有换行符\n,默认模式下是不支持换行符特性的,比如:行开头 和 行结尾,而多行模式下是支持匹配行开头的。

re.MULTILINE

详细模式,可以在正则表达式中加注解!

re.VERBOSE

re模块函数

查找一个匹配项

  • search: 查找任意位置的匹配项
  • match: 必须从字符串开头匹配
  • fullmatch: 整个字符串与正则完全匹配

查找多个匹配项

  • findall: 从字符串任意位置查找,返回一个列表
  • finditer:从字符串任意位置查找,返回一个迭代器

分割

re.split(pattern, string, maxsplit=0, flags=0)

pattern 分开 string , maxsplit表示最多进行分割次数, flags表示模式,就是上面的常量

替换

  • sub函数
  • subn函数:与 re.sub函数 功能一致,只不过返回一个元组 (字符串, 替换次数)
re.sub(pattern, repl, string, count=0, flags=0)

使用 repl 替换 string中符合 pattern 的

编译正则对象

  • compile函数:将正则表达式的样式编译为一个 正则表达式对象,与re模块有同样的正则函数
  • template函数

其他

  • r'' :去除转义字符.
  • b'':表示这是一个 bytes 对象
  • u'':字符串以 Unicode 格式 进行编码
  • f'' :表示在字符串内支持大括号内的python 表达式

. - 除换行符以外的所有字符。

^ - 字符串开头。

$ - 字符串结尾。

\d,\w,\s - 匹配数字、字符、空格。

\D,\W,\S - 匹配非数字、非字符、非空格。

[abc] - 匹配 a、b 或 c 中的一个字母。

[a-z] - 匹配 a 到 z 中的一个字母。

[^abc] - 匹配除了 a、b 或 c 中的其他字母。

aa|bb - 匹配 aa 或 bb。

? - 0 次或 1 次匹配。

* - 匹配 0 次或多次。

+ - 匹配 1 次或多次。

{n} - 匹配 n次。

{n,} - 匹配 n次以上。

{m,n} - 最少 m 次,最多 n 次匹配。

(*expr*) - 捕获 expr 子模式,以 \1 使用它。

(?:*expr*) - 忽略捕获的子模式。

(?=*expr*) - 正向预查模式 expr

(?!*expr*) - 负向预查模式 expr

https://zhuanlan.zhihu.com/p/127807805

posted @ 2022-01-20 15:10  鱼与鱼  阅读(74)  评论(0编辑  收藏  举报