Python 中使用正则表达式转义

 更新时间:2023年06月12日 11:01:26   作者:迹忆客  
这篇文章主要介绍了Python 正则表达式转义,在 Python 中,正则表达式转义sub()方法用于替换字符串,替换后的字符串由 re 模块中的 Python 内置方法返回,需要的朋友可以参考下

这篇文章是关于 Python 正则表达式转义的。 此外,我们将介绍 Python 正则表达式转义以及如何通过适当的示例代码使用它,以及 Python 正则表达式的多种用途。

此外,Python 支持使用正则表达式(或正则表达式)对字符串进行搜索和替换操作。

Python 正则表达式转义

RegEx 是一种根据预定义模式匹配文本的强大技术。 将文本与特定模式进行比较可以检测它是否存在。

它还可以将模式分解为子模式。 在 Python 中,正则表达式转义可以执行范围广泛的任务。

它可以执行搜索和替换操作、替换文本中的模式以及检查字符串是否包含特定模式。 今天我们还将使用正则表达式执行搜索和替换操作。

Python 中的正则表达式可以使用标准库中的 re 模块来表达。 正则表达式和字符串考虑它们的主要目的,即执行搜索。

如果有第一个匹配项,则将返回匹配项。

Python 有一个默认模块 re,它可以帮助进行搜索和替换。 我们的代码必须在开始时导入模块才能使用它。

import re

示例代码:

import re
match = re.search(r'Analytics', 'DataScience: Data Science & Analytics\                                    subfield of AI')
print(match)
print(match.group())
print("Begin the Index:", match.start())
print("Let's finish the Index:", match.end())

输出:

<re.Match object; span=(28, 37), match='Analytics'>
Analytics
Begin the Index: 28
Let's finish the Index: 37

Python 正则表达式转义的语法

原始属性在这里由 r 字符(r’property’)表示,而不是由正则表达式表示。 与常规字符串不同,纯字符串不会将 \ 字符解释为转义字符。

由于正则表达式引擎使用 / 字符进行转义的方式,它使用 / 字符进行转义。

让我们用 Python 对此进行详细说明。

import re
# When an escape() is used in the first case, it returns a string with BackSlash '/' before every non-Alphanumeric character. In the second case, it returns a string with BackSlash '/' before '' only.
print(re.escape("It was really a wonderful experience so far"))
print(re.escape("I am curious about the experience [a-9], she said \t ^Awesome"))

输出:

It\ was\ really\ a\ wonderful\ experience\ so\ far
I\ am\ curios\ about\ the\ experience\ \[a\-9\],\ she\ said\ \    \ \^Awesome

另外,如果要用Python中的正则表达式检查字符串中是否存在某个单词,可以用逗号分隔字符串。

只要字符串中没有转义字符,r 就会使字符串成为原始字符串,不处理转义字符。

此外,re.match 从字符串的开头开始匹配。 这意味着它搜索字符串和模式之间的精确匹配。

如果您需要在任何地方匹配字符串中的任何内容,请使用 re.search。 下面是一个例子。

import re
line = 'This,is,a,practice,string'
re.match("practice", line)
re.search("practice", line)

输出:

<re.Match object; span=(10, 18), match='practice'>

此外,我们将了解 Python 正则表达式的多种用途。

Python 正则表达式的多次使用

搜索并替换为正则表达式

在 regex 方法中,搜索一个字符串,然后替换一些其他值。 Python 的 re.sub() 模块中的 re.sub() 函数用于完成此操作。

语法:

re.sub(pattern, replacement, string, count=0, flags=0)

我们可以使用 Python 使用正则表达式搜索和查找字符串。 在这种情况下,字符串是包含您要操作的字符串的变量。

如果模式在字符串中多次出现,我们可以指定您希望模式被替换多少次。 0 是默认值; 在任何情况下,它都是可选的。

无需指定正则表达式标志。

示例代码:

import re
str = "abid304@outlook.com"
print(re.sub("[a-z]*@", "abc@", str))

输出:

abid304abc@outlook.com

用正则表达式替换多模式

可以使用正则表达式一次替换多个模式。 可以使用以下语法轻松完成此操作。

语法:

re.sub(pattern_11 | pattern_22, replacement, string, count=0, flags=0)

示例代码:

import re
str = "MachineLearning is the Subfield of AI"
print(re.sub(r"(\s)|(-)", ",", str))

输出:

MachineLearning,is,the,Subfield,of,AI

使用正则表达式将多个模式替换为多个替换值

正则表达式也可用于用不同的替换项替换多个模式。 如以下示例所示,需要稍作修改。

示例代码:

import re
def convrt_case(mtch_obj):
  if mtch_obj.group(1) is not None:
    return mtch_obj.group(1).lower()
  if mtch_obj.group(2) is not None:
    return mtch_obj.group(2).upper()
str = "mACHINE lEARNING IS THE sUBFIELD OF ai"
print(re.sub(r"([A-Z]+)|([a-z]+)", convrt_case, str))

输出:

Machine Learning is the Subfield of AI

如本例所示,该字符串同时包含需要替换的大写和小写字母。 大写字母需要替换为小写字母,反之亦然。

我们将创建两个组,然后添加一个函数来替换它们。

在 Python 中,正则表达式转义 sub() 方法用于替换字符串。 替换后的字符串由 re 模块中的 Python 内置方法返回。

确保导入 re 模块。 在此方法中,搜索字符串中的模式并用新表达式替换。

我们希望这篇 Python 文章能帮助您了解如何更有效地在 Python 中使用正则表达式转义。

到此这篇关于Python 正则表达式转义的文章就介绍到这了,更多相关Python 正则表达式转义内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python的turtle模块绘制樱花树的代码示例

    使用Python的turtle模块绘制樱花树的代码示例

    Python的turtle模块是一个直观的图形化编程工具,让用户通过控制海龟在屏幕上的移动来绘制各种形状和图案,在接下来的文章中,我将通过一个生动的例子——绘制一幅樱花树图画——来深入探讨turtle模块的实用性,需要的朋友可以参考下
    2024-04-04
  • Python读取SQLite3数据库中的文件并获取列名/字段名

    Python读取SQLite3数据库中的文件并获取列名/字段名

    这篇文章主要为大家详细介绍了如何使用Python读取SQLite3数据库中的文件并获取列名与字段名,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2025-07-07
  • vscode autopep8无法格式化python代码问题解决

    vscode autopep8无法格式化python代码问题解决

    这篇文章主要为大家介绍了vscode autopep8无法格式化python代码问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Python 正则表达式的高级用法

    Python 正则表达式的高级用法

    作为一个概念而言,正则表达式对于Python来说并不是独有的。但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别。本文是一系列关于Python正则表达式文章的其中一部分。
    2016-12-12
  • 关于windows下Tensorflow和pytorch安装教程

    关于windows下Tensorflow和pytorch安装教程

    Tensorflow是广泛使用的实现机器学习以及其它涉及大量数学运算的算法库之一。这篇文章主要介绍了Tensorflow和pytorch安装(windows安装),需要的朋友可以参考下
    2020-02-02
  • 用python简单实现mysql数据同步到ElasticSearch的教程

    用python简单实现mysql数据同步到ElasticSearch的教程

    今天小编就为大家分享一篇用python简单实现mysql数据同步到ElasticSearch的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Django models filter筛选条件详解

    Django models filter筛选条件详解

    这篇文章主要介绍了Django models filter筛选条件详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • java_error_in_pycharm64.hprof文件作用、风险与处理建议解析

    java_error_in_pycharm64.hprof文件作用、风险与处理建议解析

    这篇文章主要介绍了java_error_in_pycharm64.hprof文件作用、风险与处理的相关资料,java_error_in_pycharm64.hprof是PyCharmrm生成的JVM内存转储文件,记录JVM错误时的内存状态,需要的朋友可以参考下
    2026-05-05
  • python获取Pandas列名的几种方法

    python获取Pandas列名的几种方法

    这篇文章主要介绍了python获取Pandas列名的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • python网络爬虫基于selenium爬取斗鱼直播信息

    python网络爬虫基于selenium爬取斗鱼直播信息

    目前是直播行业的一个爆发期,由于国家对直播行业进行整顿和规范,现在整个直播行业也在稳固发展。随着互联网和网络直播市场的快速发展,相信未来还有广阔的发展前景。今天用selenium爬取一下斗鱼直播信息将代码分享给大家
    2022-03-03

最新评论