Python使用正则表达式识别代码中的中文、英文和数字实例演示

news2024/11/24 16:40:19

Python 正则表达式识别代码中的中文、英文和数字

  • 识别中文
  • 识别英文
  • 识别数字
  • 拓展

在文本处理和数据分析中,有时候需要从代码中提取出其中包含的中文、英文和数字信息。正则表达式是一种强大的工具,可以帮助我们实现这一目标。本文将分三个部分详细介绍如何使用正则表达式在 Python 中识别代码中的中文、英文和数字。

识别中文

Python 中,可以使用 Unicode 字符范围来匹配中文字符,其中中文字符的 Unicode 范围是 "\u4e00-\u9fff"。我们可以使用正则表达式模式来匹配中文字符,并提取出来。

import re

def extract_chinese_chars(code):
    chinese_pattern = '[\u4e00-\u9fff]+'  # 匹配中文字符
    chinese_chars = re.findall(chinese_pattern, code)
    return chinese_chars

# 测试代码
code = '''
在人脸检测方面,一种常见的方法是使用Haar级联分类器。
Haar级联分类器是一种基于机器学习的人脸检测方法,其核心是基于特征的级联分类器。
这种方法需要首先使用训练数据来训练分类器,然后使用它来检测新的图像中的人脸。
在人脸识别方面,另一种常见的方法是使用人脸识别算法,例如Eigenfaces,Fisherfaces和LBPH(Local Binary Pattern Histograms)。
这些算法使用训练数据集中的人脸图像来学习每个人脸的特征,并在新图像中使用这些特征来识别人脸。
'''

chinese_chars = extract_chinese_chars(code)
print("中文字符:", chinese_chars)

效果图:
在这里插入图片描述
在上述示例中,我们定义了extract_chinese_chars 函数来提取代码中的中文字符。函数内部使用 re.findall 函数和正则表达式模式来匹配中文字符,并将匹配结果返回。通过对示例代码进行测试,我们成功提取了中文字符,并输出了结果。

识别英文

为了识别英文字符,我们可以使用字母字符类进行匹配。在 Python 中,字母字符类可以使用 "[a-zA-Z]" 来表示,如果还包括数字,则可以使用 "[a-zA-Z0-9]"。我们同样可以使用正则表达式模式来匹配英文字符,并提取出来。

import re

def extract_english(code):
    english_pattern = '[a-zA-Z]+'  # 匹配英文字符
    english_chars = re.findall(english_pattern, code)
    return english_chars

# 测试代码
code = '''
在人脸检测方面,一种常见的方法是使用Haar级联分类器。
Haar级联分类器是一种基于机器学习的人脸检测方法,其核心是基于特征的级联分类器。
这种方法需要首先使用训练数据来训练分类器,然后使用它来检测新的图像中的人脸。
在人脸识别方面,另一种常见的方法是使用人脸识别算法,例如Eigenfaces,Fisherfaces和LBPH(Local Binary Pattern Histograms)。
这些算法使用训练数据集中的人脸图像来学习每个人脸的特征,并在新图像中使用这些特征来识别人脸。
'''

english_chars = extract_english(code)
print("英文字符:", english_chars)

效果图:
在这里插入图片描述
在上述示例中,我们定义了 extract_english 函数来提取代码中的英文字符。函数内部使用 re.findall 函数和正则表达式模式来匹配英文字符,并将匹配结果返回。通过对示例代码进行测试,我们成功提取了英文字符,并输出了结果。

识别数字

要识别代码中的数字,可以直接使用数字字符类进行匹配。在 Python 中,数字字符类可以使用 "[0-9]" 来表示。我们同样可以使用正则表达式模式来匹配数字,并提取出来。

import re

def extract_numbers(code):
    number_pattern = '[0-9]+'  # 匹配数字
    numbers = re.findall(number_pattern, code)
    return numbers

# 测试代码
code = '''
在人脸检测方面,一种常见的方法是使用Haar级联分类器。
Haar级联分类器是一种基于机器学习的人脸检测方法,其核心是基于特征的级联分类器。
这种方法[5003]需要首先使用训练数据来训练分类器,然后使用它来检测新的图像中的人脸。
在人脸识别方面,另一种常见的方法(123456)是使用人脸识别算法,例如Eigenfaces,Fisherfaces和LBPH(Local Binary Pattern Histograms)。
这些算法使用训练--13141516-数据集中的人脸图像来学习每个人脸的特征,并在新图像中使用这些特征来识别人脸。
'''

numbers = extract_numbers(code)
print("数字:", numbers)

效果图:
在这里插入图片描述
在上述示例中,我们定义了 extract_numbers 函数来提取代码中的数字。函数内部使用 re.findall 函数和正则表达式模式来匹配数字,并将匹配结果返回。通过对示例代码进行测试,我们成功提取了数字,并输出了结果。

拓展

正则表达式(Regular Expression)是一种强大的文本模式匹配工具,它可以用来在字符串中进行高级的搜索、匹配、替换和提取操作。正则表达式由一系列字符和特殊符号组成,这些字符和符号形成了一种规则,描述了我们希望匹配的文本模式。

下面是正则表达式的一些强大功能的简介:

1、匹配文本模式: 正则表达式可以使用特定的模式来匹配字符串中的文本。例如,可以使用正则表达式来匹配电子邮件地址、URL、电话号码等特定的文本模式。
2、搜索和替换: 正则表达式可以在字符串中搜索指定的模式,并将其替换为其他内容。这对于批量替换、字符串处理和文本清洗非常有用。
3、字符类和量词: 正则表达式提供了字符类和量词的功能,用于指定匹配的字符集合和匹配次数。例如,可以使用字符类来匹配字母、数字或特定范围的字符,使用量词来指定匹配的次数,如匹配零次或多次。
4、边界匹配: 正则表达式支持边界匹配,例如匹配单词的边界、字符串的开头或结尾等。这对于精确匹配特定位置的文本很有用。
5、分组和捕获: 正则表达式可以使用括号来创建分组,并将匹配的部分捕获到变量中。这使得可以对匹配的结果进行进一步处理或提取特定部分。
6、非贪婪匹配: 正则表达式默认使用贪婪匹配,即尽可能多地匹配文本。但可以使用非贪婪匹配来匹配尽可能少的文本。这在需要匹配最短的字符串时很有用。
7、后向引用: 正则表达式允许使用后向引用来引用之前捕获的内容。这可以用于查找重复的模式,例如匹配重复的单词、标签等。
8、预查机制: 正则表达式支持预查机制,用于在匹配时向前或向后查找特定的模式,而不进行实际匹配。这对于在匹配时进行条件判断或限制非匹配部分很有用。

喜欢的点个赞❤吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/613711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python如何倒序输出一组数

Python如何倒序输出一组数 Python是一种广泛使用的高级编程语言,由于其易读性和简洁性,Python已成为Web开发、数据分析以及人工智能等方向的首选语言。而在程序编写过程中,倒序输出一组数也是一个经常用到的操作。在本文中,我们将…

ActiveReportsJS 4.0.2 Crack ActiveReportsJS New

ActiveReportsJS - 高级 JavaScript 报告解决方案 ActiveReportsJS 是一个强大的 Web 应用程序报告工具,它允许开发人员和报告作者轻松地在他们的应用程序中设计和显示报告。凭借广泛的功能,例如向下钻取、运行时数据过滤和参数驱动的报告,以…

基于时间的访问控制列表(ACL)配置实验

基于时间的访问控制列表(ACL)配置实验 【实验目的】 掌握基于时间的ACL配置。认识给予时间的ACL的作用。验证配置。 【实验拓扑】 实验拓扑如下图所示。 设备参数如下表所示。 设备 接口 IP地址 子网掩码 默认网关 R1 S0/3/0 192.168.1.1 255…

24万字智慧城市时空信息云平台 大数据一体化 解决方案word

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除篇幅有限,无法完全展示,喜欢资料可转发评论,私信了解更多信息。 第二章 XX新型智慧城市总体设计 2.1 新型智慧城市核心技术 2.2 新型智慧城…

chatgpt赋能python:Python如何倒着循环:一步步教你倒序遍历序列

Python如何倒着循环:一步步教你倒序遍历序列 Python是一种高级编程语言,因其语法简单易学,常被用于数据分析、机器学习、自然语言处理等领域。在实际开发中,我们经常需要遍历序列。有时需要倒着循环序列,本文将详细介…

Roop:Colab脚本使用方法!

​AI领域人才辈出,突然就跳出一个大佬“s0md3v”,开源了一个单图就可以进行视频换脸的项目。 项目主页给了一张换脸动图非常有说服力,真是一图胜万言。 快速在本地配置一个环境,验证了一下,确实还不错。主要是&#xf…

使用ChatGPT生成思维导图(附永久免费镜像网址)

前言 思维导图(The Mind Map),是表达发散性思维的有效图形思维工具。思维导图运用图文并重的技巧,把各级主题的关系用相互隶属与相关的层级图表现出来,把主题关键词与图像、颜色等建立记忆链接 ,可以应用于…

Python-web开发学习笔记(3):CSS基础

🚀 Python-web开发学习笔记系列往期文章: 🍃 Python-web开发学习笔记(1)--- HTML基础 🍃 Python-web开发学习笔记(2)--- HTML基础 🍃 Python-web开发学习笔记&#xff08…

网络层概述及提供的两种服务

1.网络层概述及提供的两种服务 笔记来源: 湖科大教书匠:网络层概述 湖科大教书匠:网络层提供的两种服务 声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考 1.1 网络层概述 网络层的主要任务是实现网络互连&#xf…

Linux 高级篇-日志管理

Linux 高级篇-日志管理 基本介绍 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。日志对于安全来说也很重要,它记录了系统每天发生的…

Python读写EXCEL文件常用方法

python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式。 用xlrd和xlwt进行excel读写;用openpyxl进行excel读写;用pandas进行excel读写; 一、数据准备 为了方便演示&#xf…

在滴滴和字节干了4年测试开发,简直不要太真实…

先简单交代一下,某不知名211的本硕,18年毕业加入滴滴,之后跳槽到了头条,一直从事测试开发相关的工作。之前没有实习经历,算是四年的工作经验吧。 这四年之间完成了一次晋升,换了一家公司,有过开…

Linux环境下Mysql8的下载、安装、主从模式搭建

主库部署 下载 下载地址:MySQL :: Download MySQL Community Server (Archived Versions) 文件名称:mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz 解压 先解压xz xz -d mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz 再解压tar tar -xvf mysql-8.0.17-linux-glibc2.12-…

QT 5.14 和 VS2017脱机离线安装记录

QT 5.14是最后的离线安装版本,都推荐这个。看了下,官方建议搭配 VS2017/VS2015 VS版本对于QT,我一直偏好社区版,只要编译器就够了,自己加上SDK目录。因为大部分工作都是在QT内完成。VS2017的离线安装比较复杂&#xff…

区间预测 | MATLAB实现基于QRCNN-BiLSTM卷积神经网络结合双向长短期记忆神经网络多变量时间序列区间预测

区间预测 | MATLAB实现QRCNN-BiLSTM卷积神经网络结合双向长短期记忆神经网络多变量时间序列区间预测 目录 区间预测 | MATLAB实现QRCNN-BiLSTM卷积神经网络结合双向长短期记忆神经网络多变量时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 1.Mat…

Android 14 之返回界面升级:预览目标界面 + 全新返回箭头

Android 13 的版本里 Android 就针对返回导航进行了大量更改,包括: 废弃原有的 KEYCODE_BACK KeyEvent提供 Manifest 属性 enableOnBackInvokedCallback 以配置是否应用全新的 Back 导航特性提供 Activity、Dialog 里处理 Back 导航的 OnBackInvokedDis…

Zabbix自定义redis6集群监控项并用python脚本自动创建应用集、监控项、触发器

1.1、编写redis_status.sh脚本 [fieldyangcentos7-135 sbin]$ mkdir -p /usr/lib/zabbix/scripts/ [fieldyangcentos7-135 sbin]$ cd /usr/lib/zabbix/scripts/ [fieldyangcentos7-135 scripts]$ cat >redis_status.sh #!/bin/bash #author:Fieldyang #descr…

day 48 打家劫舍专题:198. 打家劫舍;213. 打家劫舍 II;337. 打家劫舍 III

打家劫舍 198. 打家劫舍1. dp数组以及下标名义2. 递归公式3. dp数组如何初始化4. 遍历顺序5. 代码 213. 打家劫舍 II:房间首尾相连1. dp数组以及下标名义2. 递归公式3. dp数组如何初始化4. 遍历顺序5. 代码 337. 打家劫舍 III:1. 递归,后序遍历动态规划:…

路径规划算法:基于热交换优化的路径规划算法- 附代码

路径规划算法:基于热交换优化的路径规划算法- 附代码 文章目录 路径规划算法:基于热交换优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法…

HTTP编码杂谈

一 HTTP编码杂谈 ① 知识铺垫 1) 编码的英文叫encode --> 常见HTTP URL编码、Base64编码等目的: 转变为二进制的stream(字节流),便于网络传输备注: 一般都是基于utf-8编码2) 解码叫decode3) 乱码的根源: 编码和解码的方式不一致4) url…