代码详解之什么是Python正则表达式

代码详解:Python正则表达式的终极使用指南 全文共8032字,预计学习时长16分钟 处理文本数据的一个主要任务就是创建许多以文本为基础的特性。 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码。 虽然想要实现上述功能听起来很繁琐,但是如果使用Python正则表达式模块,就可以使这一操作更加简单。 假设要在一篇特定的文章中找出标点符号的数量。以狄更斯的作品文本为例。 你通常会怎么做... 阅读详情

处理文本数据的一个主要任务就是创建许多以文本为基础的特性。

人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码。
在这里插入图片描述

虽然想要实现上述功能听起来很繁琐,但是如果使用Python正则表达式模块,就可以使这一操作更加简单。

假设要在一篇特定的文章中找出标点符号的数量。以狄更斯的作品文本为例。

你通常会怎么做?

最简单的方法如下:

target = [';','.',',','–'] 
string = "It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to Heaven, we were all going direct the other way – in short, the period was so far like the present period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only." 
num _ points = 0 
num_puncts = 0 
for punct in target: 
 if punct in string: 
 num_puncts+=string.count(punct)print(num_puncts) 
------------------------------------------------------------------ 
19 

如果没有可支配的re模块,那就要用到上面的代码。但如果有re模块,则只需两行代码:

import re 
pattern = r"[;.,–]" 
print(len(re.findall(pattern,string))) 
------------------------------------------------------------------ 
19 

那,什么是正则表达式?

简而言之,正则表达式(regex)用于探索给定字符串中的固定模式。

我们想找到的模式可以是任何东西。

可以创建类似于查找电子邮件或手机号码的模式。还可以创建查找以a开头、以z结尾的字符串的模式。

在上面的例子中:

import re 
pattern = r'[,;.,–]' 
print(len(re.findall(pattern,string))) 

我们想找出的模式是 r’[,;.,–]’。这个模式可找出想要的4个字符中的任何一个。regex101是一个用于测试模式的工具。将模式应用到目标字符串时,呈现出以下界面。

在这里插入图片描述
如图所示,可以在目标字符串中根据需要找到,;.,–。

每当需要测试正则表达式时,都会用到上面的工具。这比一次又一次运行python要快得多,调试也容易得多。

正则表达式实战:从零到一构建有限自动机(附Python代码示例) 本文详细介绍了如何从正则表达式构建有限自动机,包括解析树构建、NFA生成、DFA转换及最小化等关键步骤,并附有Python代码示例。通过实战案例,帮助开发者掌握正则表达式与有限自动机的转换技术,提升文本处理效率。 阅读详情

相关推荐

Python 正则表达式详解及示例代码

本文介绍了 Python 中正则表达式的基本语法和用法。通过示例代码的演示,我们了解了如何使用正则表达式匹配文章内容过长,请继续提问,如果你有关于正则表达式的具体问题或需要进一步的示例,请告诉我。

James_CODER的博客 258

Doris Routine Load正则表达实战

Doris Routine Load正则表达实战 Doirs库、表 regexp_extract Spark内核和应用实战

wangleigiser的博客 1451

Python正则表达式详解及示例代码

在实际应用中,我们可以根据具体的匹配需求,灵活运用正则表达式的各种功能和语法规则。如果匹配成功,将输出"匹配成功",否则输出"匹配失败"。在上述代码中,我们使用(\w+)和(\d+)的正则表达式模式对姓名和年龄进行了分组匹配。如果匹配成功,将输出姓名和年龄的信息,否则输出"匹配失败"。在上述代码中,我们使用\d{3}-\d{3}-\d{4}的正则表达式模式匹配一个电话号码。如果匹配成功,将输出"匹配成功",否则输出"匹配失败"。如果匹配成功,将输出"匹配成功",否则输出"匹配失败"。

HackVibe的博客 168

常用的正则表达式符号

最近看了正表达式的相关文章,网址 [url]http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm#getstarted[/url] 把常用的截取了一下: [b]元字符(metacharacter)[/b] \b :代表着单词的开头或结尾,也就是单词的分界处。虽然通常英文的单词是由空格,标点符号或者换行来分隔...

Doris_DongYan的专栏 534

Python正则表达式详解及实例代码解析

综上所述,re模块提供了强大的正则表达式功能,可以方便地进行字符串匹配、替换、分割等操作。我们在日常开发中可以灵活运用这些功能,提高代码的效率和可读性。Python中的正则表达式模块re提供了强大的正则表达式功能,可以用于字符串匹配、替换、分割等操作。使用re模块的match()函数可以进行字符串匹配。使用re模块的sub()函数可以进行字符串替换。使用re模块的split()函数可以进行字符串分割。输出结果为[‘I’, ‘love’, ‘Python’, ‘programming’]。

NoerrorCode的博客 123

Python正则表达式中的转义符“\“: 详解与示例代码

在正则表达式中,转义符"\(反斜杠)"具有特殊的功能,它可以改变后面字符的原始意义,使其具有特殊的含义或者取消特殊字符的含义。本文将详细介绍Python中转义符的功能,并提供相应的示例代码。转义符"\"在Python正则表达式中具有重要的功能,它可以用于转义特殊字符、取消特殊字符的含义以及插入特殊字符。在上述代码中,我们使用转义符"\"来匹配字符串中的点号字符,从而实现了匹配包含点号的字符串的功能。在上述代码中,我们使用转义符"\"来取消星号的特殊含义,从而实现了匹配包含星号的字符串的功能。

DevScript的博客 528

代码详解之Python正则表达式的优秀使用指南2

紧接上一篇代码详解之Python正则表达式的优秀使用指南1 我们继续看一下:正则表达式函数 正则表达式函数: 目前为止,只使用了 re包中的findall 函数,其实还有很多其他函数。下面来逐个介绍。 1. findall 上面已经使用了 findall。这是我最常使用的一个。下面来正式认识一下这个函数吧。 输入:模式和测试字符串 输出:字符串列表。 #USAGE: pattern = r'[i...

python_doris的博客 219

STM32F103结合HAL库实现蓝牙遥控四麦小车的PID闭环控制

本文详细介绍了如何使用STM32F103结合HAL库实现蓝牙遥控四麦小车的PID闭环控制。从硬件选型、电路搭建到PID算法实现与调参,全面解析了四麦小车的运动控制方案,特别强调了蓝牙通信协议设计和麦轮运动学解算的关键技术。

weixin_29169899的博客 292

Python正则表达式一文详解+实例代码展示

正则匹配可以说是数据检索和遍历的基础技能了。在Python我们经常会用到需要提出特定字符的场景,尤其在网络爬虫爬取的编码后杂乱网页提取数据的的时候。在数据库提取数据后或是JSON文件做二次处理都需要re库进行提取。因此学好re库和正则表达是python工程师的必修课,你可以对正则表达式掌握的不是很熟练,但是必须要了解re库中存在的各种函数功能,这将大大加速你完成项目某项需求的时间也方便进行问题搜索。本文将详细介绍Python中正则表达式功能re库的功能。............

master_hunter的博客 2574

智算中心建设全流程指南:从规划到落地

智算中心的建设是一个复杂而系统的过程,涉及选址、立项、办理相关手续、设计、土建、机电安装、调试、验收等多个环节。每个环节都需要充分考虑各种因素,并注意相关的事项,以确保智算中心的顺利建设和高效运行

数据中心全生命周期价值管理 3402

FSL软件安装

FSL软件安装

huang_tianyuan的博客 2634

代码详解之Python正则表达式的优秀使用指南1

创建模式 使用正则表达式时,首先需要学习的是如何创建模式。 接下来将对一些最常用的模式进行逐一介绍。 可以想到最简单的模式是一个简单的字符串。 pattern = r'times' string = "It was the best of times, it was the worst of times." print(len(re.findall(pattern,string))) 但...

python_doris的博客 384

避坑指南:Winbond W25Q256JV QSPI Flash状态寄存器那些坑(含QE位不可改的解决方案)

本文深度解析Winbond W25Q256JV QSPI Flash状态寄存器的常见问题与解决方案,重点解决QE位不可修改、写保护区域异常等典型问题。通过实战代码示例和寄存器配置技巧,帮助开发者高效完成Flash读写测试与性能优化,避免常见设计陷阱。

ol7890123的博客 309

python使用正则验证电子邮件_代码详解:Python正则表达式的终极使用指南

全文共8032字,预计学习时长16分钟处理文本数据的一个主要任务就是创建许多以文本为基础的特性。人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码。虽然想要实现上述功能听起来很繁琐,但是如果使用Python正则表达式模块,就可以使这一操作更加简单。假设要在一篇特定的文章中找出标点符号的数量。以狄更斯的作品文本为例。你通常会怎么做?最简单的方法如下:ta...

weixin_31359991的博客 900

ExpressLRS(ELRS)接收机技术全景:从历史演进、技术底层到产业生态全解析——上

ExpressLRS(ELRS)是一种由全球开源社区驱动的双向射频遥控链路协议栈,其接收机作为核心终端,承担信号接收解调、遥控指令解析、飞控数据交互与遥测回传等关键功能。自2018年问世以来,ELRS凭借极致性能、低成本、开放生态和强兼容性,从航模DIY方案发展为消费级无人机领域的事实标准,并逐步渗透工业级场景。 ELRS接收机采用模块化分层架构,支持2.4GHz和900MHz双频段,通过LoRa、FLRC、FSK多调制模式实现低延迟与远距离平衡。其核心技术包括自适应跳频抗干扰、TDD双向链路和极简数据包。

bother3000的博客 304

关于IBV_WR_RDMA_WRITE_WITH_IMM的理解

对于IBV_WC_RECV_RDMA_WITH_IMM的描述是这样的,也就是说并不需要sge,所以下发的sge,可以是NULL,个数可以是0。(1)需要下发post_recv,但是下发是post_recv当中的sge的地址可以是空,sge个数可以是0。伪代码,实际的rkey和addr已经通过socket交换。并且poll_cq时,有返回,在这篇文章当中对于poll_cq时,主要区别点有两个,这个是对于接收端而言。(2)可以带即时数据,

qq_38158479的博客 2422

python 正则表达式核心特殊字符

是正则表达式中用于匹配任意单个字符(除了换行符)的特殊字符。你的代码会返回str2的第一个字符,即'['。正则表达式的特殊字符让你可以灵活、精确地匹配各种复杂文本。熟练掌握这些特殊字符,是高效文本处理和数据清洗的基础。!

qq_37805832的博客 304

82、yolov11检测模型迁移瑞芯微rk3588和使用昇腾设备300i DUO卡推理 batch=1/3,支持昇腾NMS迁移npu推理

本文介绍了使用昇腾设备进行分割推理的测试流程,包括两种测试方式(cann+onnx和om)。首先验证300iDUO卡的可用性,随后创建Docker镜像和容器以搭建独立环境。通过从指定仓库拉取Ubuntu 20.04镜像,创建容器并映射目录。进入容器后安装必要组件(Python3、GCC等)和系统工具(pciutils、net-tools等),为后续模型转换和迁移做准备。整个流程旨在构建可交付给第三方的标准化测试环境。

sxj731533730 1214

正则表达式

正则表达式是一种可以让复杂的字符串问题变得简单的工具

weixin_46054519的博客 291

30. 如何使用 SEGW 的 redefine 功能对 SAP 标准 OData 服务进行扩展

SAP 发布了很多标准的 Fiori 应用,可以通过笔者的文章里提到的进行浏览。比如 My Opportunities 就是 SAP CRM 领域的一个 Fiori 应用:下图是 Opportunity 明细页面的 Info 标签页:假设我们想在这些标准字段的末尾增添一个新字段 Created By,用来维护当前 Opportunity 的创建者。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1176

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

python爬虫代码更新

昨天和室友看《Python金融大数据挖掘与分析全流程详解》第67,68页的代码时,发现网页已经更新了,代码运行错误。 先看结果, 大致由三部分组成,标题,时间,和链接。 打开爬虫的网页 缺个链接,按f12,打开开发者工具 在开发者工具上面出现这个网页代码,这个截图结果可能在网页右边,也可能在下面 这样大家都发现了,链接和标题都有了,可以写正则 p_href = '<h3 class=".*?"><a href="(.*?)"' href...

qq_22426297的博客 1248

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: python--检查图片是否损坏、图片后缀是否与实际图片类型对应
下一篇: 代码详解之Python正则表达式的优秀使用指南1
python-花猫
博客等级 码龄7年 105粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值