Python中re.sub()正则替换方法详细教程如何操作?

2026-04-30 16:541阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2671个文字,预计阅读时间需要11分钟。

Python中re.sub()正则替换方法详细教程如何操作?

目录

1.匹配单个数字或字母

2.匹配多个数字或字母

3.匹配其他

总结源代码、参数及其意义:def sub(pattern, repl, string, count=0, flags=0): 返回通过替换最左侧的非重叠匹配得到的字符串

目录
  • 1.匹配单个数字或字母
  • 2.匹配多个数字或字母
  • 3.匹配其他
  • 总结

源代码、参数及其意义:

def sub(pattern, repl, string, count=0, flags=0): """Return the string obtained by replacing the leftmost non-overlapping occurrences of the pattern in string by the replacement repl. repl can be either a string or a callable; if a string, backslash escapes in it are processed. If it is a callable, it's passed the Match object and must return a replacement string to be used.""" return _compile(pattern, flags).sub(repl, string, count)

从源码中看出re.sub()函数共有5个参数:

  • pattern:表示正则中的模式字符串;
  • repl:表示要替换的字符串(即匹配到pattern后替换为repl),也可以是个函数;
  • string:表示要被处理(查找替换)的原始字符串;
  • count:可选参数,表示要替换的最大次数,而且必须是非负整数,该参数默认为0,即所有的匹配都会替换;
  • flags:可选参数,表示编译时用的匹配模式(如忽略大小写、多行模式等),数字形式,默认为0。

re.sub():匹配替换为选择的文本。

1.匹配单个数字或字母

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 只匹配单一数字 ret = re.sub(r'[0-9]', "*", s) print(ret)

运行结果:

re.sub(r'[0-9]', '*', s)这句话表示只匹配单一数字,并将每一个数字替换为一个星号

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 只匹配单一字母 ret = re.sub(r'[a-z]', "*", s) print(ret) ret = re.sub(r'[A-Z]', "*", s) print(ret) ret = re.sub(r'[a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[A-z]', "*", s) print(ret)

运行结果:

re.sub(r'[a-z]', '*', s) 表示只匹配单一小写字母,并将每一个小写字母替换为一个星号 。re.sub(r'[A-Z]', '*', s) 表示只匹配单一大写字母,并将每一个大写字母替换为一个星号 。re.sub(r'[A-Za-z]', '*', s) 这句话则表示只匹配单一字母,并将每一个字母替换为一个星号 。

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配单一数字和字母 ret = re.sub(r'[0-9a-z]', "*", s) print(ret) ret = re.sub(r'[0-9A-Z]', "*", s) print(ret) ret = re.sub(r'[0-9a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[0-9A-z]', "*", s) print(ret)

运行结果:

re.sub(r'[0-9A-Z]', '*', s) 表示只匹配单一数字和大写字母,并将每一个数字和大写字母替换为一个星号 。
re.sub(r'[0-9a-z]', '*', s) 表示只匹配单一数字和小写字母,并将每一个数字和小写字母替换为一个星号 。
re.sub(r'[0-9A-Za-z]', '*', s) 表示只匹配单一数字和字母,并将每一个数字和字母替换为一个星号 。

2.匹配多个数字或字母

注意:这里的所说的多个指的是大于等于一个。

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配多个数字 ret = re.sub(r'[0-9]+', "*", s) print(ret)

运行结果:

re.sub(r'[0-9]+', '*', s)表示匹配多个连续的数字,并将多个连续的数字替换为一个星号

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配多个字母 ret = re.sub(r'[a-z]+', "*", s) print(ret) ret = re.sub(r'[A-Z]+', "*", s) print(ret) ret = re.sub(r'[a-zA-Z]+', "*", s) print(ret)

运行结果:

Python中re.sub()正则替换方法详细教程如何操作?

  • re.sub(r'[a-z]+', '*', s) 表示匹配多个连续的小写字母,并将多个连续的小写字母替换为一个星号 。
  • re.sub(r'[A-Z]+', '*', s) 表示匹配多个连续的大写字母,并将多个连续的大写字母替换为一个星号 。
  • re.sub(r'[A-Za-z]+', '*', s) 表示匹配多个连续的字母,并将多个连续的字母替换为一个星号 。

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配多个数字和字母 ret = re.sub(r'[0-9a-zA-Z]+', "*", s) print(ret)

运行结果:

re.sub(r'[0-9A-Za-z]+', '*', s)表示匹配多个连续的数字和字母,并将多个连续的数字、连续的字母、连续的数字和字母替换为一个星号

3.匹配其他

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配非数字 ret = re.sub(r'[^0-9]', "*", s) print(ret) ret = re.sub(r'[^0-9]+', "*", s) print(ret)

运行结果:

  • re.sub(r'[^0-9]', '*', s)表示匹配单个非数字,并将单个非数字替换为一个星号
  • re.sub(r'[^0-9]+', '*', s)表示匹配多个连续的非数字,并将多个连续的非数字替换为一个星号

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配非字母 ret = re.sub(r'[^a-z]', "*", s) print(ret) ret = re.sub(r'[^A-Z]', "*", s) print(ret) ret = re.sub(r'[^a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[^a-z]+', "*", s) print(ret) ret = re.sub(r'[^A-Z]+', "*", s) print(ret) ret = re.sub(r'[^a-zA-Z]+', "*", s) print(ret)

运行结果:

  • re.sub(r'[^a-z]', '*', s) 表示匹配单个非小写字母,并将单个非小写字母替换为一个星号 。
  • re.sub(r'[^A-Z]', '*', s) 表示匹配单个非大写字母,并将单个非大写字母替换为一个星号 。
  • re.sub(r'[^A-Za-z]', '*', s) 表示匹配单个非字母,并将单个非字母替换为一个星号 。
  • re.sub(r'[^a-z]+', '*', s) 表示匹配多个连续的非小写字母,并将多个连续的非小写字母替换为一个星号 。
  • re.sub(r'[^A-Z]+', '*', s) 表示匹配多个连续的非大写字母,并将多个连续的非大写字母替换为一个星号 。
  • re.sub(r'[^A-Za-z]+', '*', s)表示匹配多个连续的非字母,并将多个连续的非字母替换为一个星号 。

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配非数字和非字母 ret = re.sub(r'[^0-9a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[^0-9a-zA-Z]+', "*", s) print(ret)

运行结果:

  • re.sub(r'[^0-9A-Za-z]', '*', s) 表示匹配单个非数字和非字母,并将单个非数字和非字母替换为一个星号 。
  • re.sub(r'[^0-9A-Za-z]+', '*', s) 表示匹配多个连续的非数字和非字母,并将多个连续的非数字和非字母替换为一个星号 。

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配固定形式 ret = re.sub(r'[^a-z ]', " ", s) print(ret) ret = re.sub(r'[^a-z ]+', " ", s) print(ret) ret = re.sub(r'[^a-zA-Z ]', " ", s) print(ret) ret = re.sub(r'[^a-zA-Z ]+', " ", s) print(ret)

运行结果:

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 去除以 @ 开头的英文单词 ret = re.sub(r'@[a-zA-Z ]+', " ", s) print(ret)

运行结果:

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # d.去除原始字符串中的URL ret = re.sub(r'https[:.]+\S+', "", s) print(ret)

运行结果:

示例代码:

import re s = "Long live the people's Republic of China" ret = re.sub("\s", "+", s) print(ret) ret2 = re.sub("\s", "+", s, 3) # 通过count参数控制替换的次数 print(ret2)

运行结果:

总结

到此这篇关于Python正则表达式re.sub()用法详解的文章就介绍到这了,更多相关Pythonre.sub()用法内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

本文共计2671个文字,预计阅读时间需要11分钟。

Python中re.sub()正则替换方法详细教程如何操作?

目录

1.匹配单个数字或字母

2.匹配多个数字或字母

3.匹配其他

总结源代码、参数及其意义:def sub(pattern, repl, string, count=0, flags=0): 返回通过替换最左侧的非重叠匹配得到的字符串

目录
  • 1.匹配单个数字或字母
  • 2.匹配多个数字或字母
  • 3.匹配其他
  • 总结

源代码、参数及其意义:

def sub(pattern, repl, string, count=0, flags=0): """Return the string obtained by replacing the leftmost non-overlapping occurrences of the pattern in string by the replacement repl. repl can be either a string or a callable; if a string, backslash escapes in it are processed. If it is a callable, it's passed the Match object and must return a replacement string to be used.""" return _compile(pattern, flags).sub(repl, string, count)

从源码中看出re.sub()函数共有5个参数:

  • pattern:表示正则中的模式字符串;
  • repl:表示要替换的字符串(即匹配到pattern后替换为repl),也可以是个函数;
  • string:表示要被处理(查找替换)的原始字符串;
  • count:可选参数,表示要替换的最大次数,而且必须是非负整数,该参数默认为0,即所有的匹配都会替换;
  • flags:可选参数,表示编译时用的匹配模式(如忽略大小写、多行模式等),数字形式,默认为0。

re.sub():匹配替换为选择的文本。

1.匹配单个数字或字母

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 只匹配单一数字 ret = re.sub(r'[0-9]', "*", s) print(ret)

运行结果:

re.sub(r'[0-9]', '*', s)这句话表示只匹配单一数字,并将每一个数字替换为一个星号

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 只匹配单一字母 ret = re.sub(r'[a-z]', "*", s) print(ret) ret = re.sub(r'[A-Z]', "*", s) print(ret) ret = re.sub(r'[a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[A-z]', "*", s) print(ret)

运行结果:

re.sub(r'[a-z]', '*', s) 表示只匹配单一小写字母,并将每一个小写字母替换为一个星号 。re.sub(r'[A-Z]', '*', s) 表示只匹配单一大写字母,并将每一个大写字母替换为一个星号 。re.sub(r'[A-Za-z]', '*', s) 这句话则表示只匹配单一字母,并将每一个字母替换为一个星号 。

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配单一数字和字母 ret = re.sub(r'[0-9a-z]', "*", s) print(ret) ret = re.sub(r'[0-9A-Z]', "*", s) print(ret) ret = re.sub(r'[0-9a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[0-9A-z]', "*", s) print(ret)

运行结果:

re.sub(r'[0-9A-Z]', '*', s) 表示只匹配单一数字和大写字母,并将每一个数字和大写字母替换为一个星号 。
re.sub(r'[0-9a-z]', '*', s) 表示只匹配单一数字和小写字母,并将每一个数字和小写字母替换为一个星号 。
re.sub(r'[0-9A-Za-z]', '*', s) 表示只匹配单一数字和字母,并将每一个数字和字母替换为一个星号 。

2.匹配多个数字或字母

注意:这里的所说的多个指的是大于等于一个。

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配多个数字 ret = re.sub(r'[0-9]+', "*", s) print(ret)

运行结果:

re.sub(r'[0-9]+', '*', s)表示匹配多个连续的数字,并将多个连续的数字替换为一个星号

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配多个字母 ret = re.sub(r'[a-z]+', "*", s) print(ret) ret = re.sub(r'[A-Z]+', "*", s) print(ret) ret = re.sub(r'[a-zA-Z]+', "*", s) print(ret)

运行结果:

Python中re.sub()正则替换方法详细教程如何操作?

  • re.sub(r'[a-z]+', '*', s) 表示匹配多个连续的小写字母,并将多个连续的小写字母替换为一个星号 。
  • re.sub(r'[A-Z]+', '*', s) 表示匹配多个连续的大写字母,并将多个连续的大写字母替换为一个星号 。
  • re.sub(r'[A-Za-z]+', '*', s) 表示匹配多个连续的字母,并将多个连续的字母替换为一个星号 。

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配多个数字和字母 ret = re.sub(r'[0-9a-zA-Z]+', "*", s) print(ret)

运行结果:

re.sub(r'[0-9A-Za-z]+', '*', s)表示匹配多个连续的数字和字母,并将多个连续的数字、连续的字母、连续的数字和字母替换为一个星号

3.匹配其他

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配非数字 ret = re.sub(r'[^0-9]', "*", s) print(ret) ret = re.sub(r'[^0-9]+', "*", s) print(ret)

运行结果:

  • re.sub(r'[^0-9]', '*', s)表示匹配单个非数字,并将单个非数字替换为一个星号
  • re.sub(r'[^0-9]+', '*', s)表示匹配多个连续的非数字,并将多个连续的非数字替换为一个星号

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配非字母 ret = re.sub(r'[^a-z]', "*", s) print(ret) ret = re.sub(r'[^A-Z]', "*", s) print(ret) ret = re.sub(r'[^a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[^a-z]+', "*", s) print(ret) ret = re.sub(r'[^A-Z]+', "*", s) print(ret) ret = re.sub(r'[^a-zA-Z]+', "*", s) print(ret)

运行结果:

  • re.sub(r'[^a-z]', '*', s) 表示匹配单个非小写字母,并将单个非小写字母替换为一个星号 。
  • re.sub(r'[^A-Z]', '*', s) 表示匹配单个非大写字母,并将单个非大写字母替换为一个星号 。
  • re.sub(r'[^A-Za-z]', '*', s) 表示匹配单个非字母,并将单个非字母替换为一个星号 。
  • re.sub(r'[^a-z]+', '*', s) 表示匹配多个连续的非小写字母,并将多个连续的非小写字母替换为一个星号 。
  • re.sub(r'[^A-Z]+', '*', s) 表示匹配多个连续的非大写字母,并将多个连续的非大写字母替换为一个星号 。
  • re.sub(r'[^A-Za-z]+', '*', s)表示匹配多个连续的非字母,并将多个连续的非字母替换为一个星号 。

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配非数字和非字母 ret = re.sub(r'[^0-9a-zA-Z]', "*", s) print(ret) ret = re.sub(r'[^0-9a-zA-Z]+', "*", s) print(ret)

运行结果:

  • re.sub(r'[^0-9A-Za-z]', '*', s) 表示匹配单个非数字和非字母,并将单个非数字和非字母替换为一个星号 。
  • re.sub(r'[^0-9A-Za-z]+', '*', s) 表示匹配多个连续的非数字和非字母,并将多个连续的非数字和非字母替换为一个星号 。

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 匹配固定形式 ret = re.sub(r'[^a-z ]', " ", s) print(ret) ret = re.sub(r'[^a-z ]+', " ", s) print(ret) ret = re.sub(r'[^a-zA-Z ]', " ", s) print(ret) ret = re.sub(r'[^a-zA-Z ]+', " ", s) print(ret)

运行结果:

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # 去除以 @ 开头的英文单词 ret = re.sub(r'@[a-zA-Z ]+', " ", s) print(ret)

运行结果:

示例代码:

import re s = "您好,欢迎来到我的博客:blog.csdn.net/weixin_44799217,,,###,,,我的邮箱是:535646343@qq.com. Today is 2021/12/21. It is a wonderful DAY!" # d.去除原始字符串中的URL ret = re.sub(r'https[:.]+\S+', "", s) print(ret)

运行结果:

示例代码:

import re s = "Long live the people's Republic of China" ret = re.sub("\s", "+", s) print(ret) ret2 = re.sub("\s", "+", s, 3) # 通过count参数控制替换的次数 print(ret2)

运行结果:

总结

到此这篇关于Python正则表达式re.sub()用法详解的文章就介绍到这了,更多相关Pythonre.sub()用法内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!