当前位置: 首页 > news >正文

做网站商城需要什么/微信小程序

做网站商城需要什么,微信小程序,太原最新建设,营销型网站一站式服务1前言 正则表达式(Regular Expression)是一种用来描述字符串模式的表达式。它是一种强大的文本匹配工具,可以用来搜索、替换和提取符合特定模式的文本。 正则表达式由普通字符(例如字母、数字、符号等)和元字符&#…

1前言

正则表达式(Regular Expression)是一种用来描述字符串模式的表达式。它是一种强大的文本匹配工具,可以用来搜索、替换和提取符合特定模式的文本。

正则表达式由普通字符(例如字母、数字、符号等)和元字符(用于描述模式的特殊字符)组成。通过结合这些字符,可以创建一个模式,用来匹配文本中符合特定规则的部分。

 正则表达式在我们日常开发中十分常用,可以用来数据提取文本处理,同时也是面试中比较常问的问题,学好正则表达式是Python开发工程师的必备项!

看了一下网上很多正则表达式的文章,对于小白来说实在有点难接受

1  符号 .

匹配任意的单个字符

import re
context = '''苹果是绿色的,橘子是黄色的,头发是黑色的
'''
##  r 表达不发生转义
p = re.compile(r'.色')
print(p.findall(context))
## ['绿色', '黄色', '黑色']

2  符号 *

匹配前面子表达式任意次(包括0次)  常常与 .  搭配使用

p = re.compile(r'是.*')
print(p.findall(context))
#['是绿色的,', '是黄色的,', '是黑色的']
p = re.compile(r'.*是')
print(p.findall(context))
#['苹果是', '橘子是', '头发是']
context = "我是是是是大帅哥,\n你是嘿嘿黑,\n欸我的饭呢"
p = re.compile(r'是*')
print(p.findall(context))
#['', '是是是是', '', '', '', '', '', '', '是', '', '', '', '', '', '', '', '', '', '', '']

3  符号 +

和 * 类似   表示至少出现一次

context = "我是是是是大帅哥,\n你是嘿嘿黑,\n欸我的饭呢"
p = re.compile(r'是+')
print(p.findall(context))
#['是是是是', '是']

4  符号 {}

指定匹配次数    

p = re.compile(r'是{2,5}')
#print(p.findall(context))
#['是是是是']
context = '''我的电话号码是12345678901,地址在深圳技术大学'''
p = re.compile(r'\d{11}')
print(p.findall(context))
#['12345678901']

5  符号 ?

是否贪心:

贪婪模式和非贪婪模式

'*' '+' 都是贪心的,会尽量多地匹配

在  '*'  '+'  之后加上  '?'  表示非贪心

context = '''<1><2><3><4>'''
p = re.compile(r'<.*?>')
#print(p.findall(context))
#['<1>', '<2>', '<3>', '<4>']
p = re.compile(r'<.*>')
#print(p.findall(context))
#['<1><2><3><4>']     #贪心

 6  符号 \

①转义

②特定字符

\d  匹配数字                      \D     匹配不是数字的

\s  匹配任意地空白字符    \S     匹配非空白

\w 匹配文字字符(数字、字母、下划线)\W 匹配非文字字符

7  符号 [] 

context = '''
leo,qq1234567890,18
penry,qq2234567890,19
anry,qq09878976454,20
makerry,qq1456789091,18'''
p = re.compile(r'qq[123]\d{9}')
print(p.findall(context))
#['qq1234567890', 'qq2234567890', 'qq1456789091']

 8  符号 ^  

非  与 [] 搭配   也可以表示匹配开口

context = "abc123,123abc,hekl1,his12,213f,abc"
p = re.compile(r'[a-z]+[0-9]{3}')
#print(p.findall(context))
#['abc123']
p = re.compile(r'[^0-9]{3}')
print(p.findall(context))
#['abc', 'abc', ',he', ',hi', 'f,a']

单行模式:匹配文本的起始位置

多行模式:匹配文本每行的起始位置

context = '''
001-apple-60,\n
002-pear-70,\n
003-banner-30'''
p = re.compile(r'^\d+',re.MULTILINE)  ##   缺省是单行    M是多行模式    
print(p.findall(context))
#['001', '002', '003']

9  符号 $

从文本末开始匹配

context = '''
001-apple-60
002-pear-70
003-banner-30'''
p = re.compile(r'^\d+',re.MULTILINE)  ##   缺省是单行    M是多行模式    
print(p.findall(context))
#['001', '002', '003']
p = re.compile(r'\d+$',re.MULTILINE)
print(p.findall(context))
#['60', '70', '30']

10  符号 () 

分组提取

context = '''
苹果是绿色的,\n橘子是黄色的,\n头发是黑色的
'''
##   消除标识符
p = re.compile(r'(.+)是')
#print(p.findall(context))
#['苹果', '橘子', '头发']
p = re.compile(r'(.+)是(.+色)的')
#print(p.findall(context))
#[('苹果', '绿色'), ('橘子', '黄色'), ('头发', '黑色')]
context = '''
leo,qq1234567890,18
penry,qq2234567890,19
anry,qq09878976454,20
makerry,qq1456789091,18'''
p = re.compile(r'(.+),qq([123]\d{9})')
#print(p.findall(context))
#[('leo', '1234567890'), ('penry', '2234567890'), ('makerry', '1456789091')]

11  \number

分组概念的举例:匹配ABAC或者AABB的成语

引用前面匹配的第n个组的内容

## 找出 ABAC AABB 型的成语
#           123        45    6
pattern = r'(((.).\3.)|((.)\5(.)\6))'
#              A B AC |  A  A B  B
## 找出 AABC ABAC 型的成语
#           123        45
pattern = r'(((.)\3..)|((.).\5.))'
#              A  ABC    A B AC

看到这里你已经掌握了基本的正则表达式的使用‘姿势’了,在日常的大部分使用场景中都足以应对了,恭喜你!

相关文章:

Python:正则表达式速通,码上上手!

1前言 正则表达式&#xff08;Regular Expression&#xff09;是一种用来描述字符串模式的表达式。它是一种强大的文本匹配工具&#xff0c;可以用来搜索、替换和提取符合特定模式的文本。 正则表达式由普通字符&#xff08;例如字母、数字、符号等&#xff09;和元字符&#…...

centos7安装nginx并安装部署前端

目录&#xff1a; 一、安装nginx第一种方式&#xff08;外网&#xff09;第二种方式&#xff08;内网&#xff09; 二、配置前端项目三、Nginx相关命令 好久不用再次使用生疏&#xff0c;这次记录一下 一、安装nginx 第一种方式&#xff08;外网&#xff09; 1、下载nginx ng…...

Hive实战:统计总分与平均分

文章目录 一、实战概述二、提出任务三、完成任务&#xff08;一&#xff09;准备数据文件1、在虚拟机上创建文本文件2、将文本文件上传到HDFS指定目录 &#xff08;二&#xff09;实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、创建Hive表&#xff0c;加载HDFS数据文件…...

Linux:不同计算机使用NFS共享资源

一&#xff0c;安装NFS文件系统 NFS即网络文件系统(network file system)&#xff0c;它允许网络中的计算机之间通过网络共享资源。目前&#xff0c;NFS只用于在Linux和UNIX主机间共享文件系统。 #使用mount命令可以将远程主机的文件系统 安装到 本地&#xff1a; #将远程主机…...

leetcode贪心算法题总结(一)

此系列分三章来记录leetcode的有关贪心算法题解&#xff0c;题目我都会给出具体实现代码&#xff0c;如果看不懂的可以后台私信我。 本章目录 1.柠檬水找零2.将数组和减半的最少操作次数3.最大数4.摆动序列5.最长递增子序列6.递增的三元子序列7.最长连续递增序列8.买卖股票的最…...

SQL高级:窗口函数

窗口函数,顾名思义,它的操作对象是窗口,即一个小的数据范围,而不是整个结果集。并且它是一个函数,在SQL中使用,所以一定有返回值。 窗口函数是SQL中非常有趣的部分,这一节我们就来学习一下它。 辅助表 方便我们后边的讲解,这里我们要建一张学生成绩表,建表语句如下…...

Excel formulas 使用总结(更新中)

最近在写task assigment的时候学习到的&#xff0c;记录下。 首先它所有需要写赋值formuls都要用 开头 相等赋值 a1 这个就代表这格的数据和a1是一样的。如果希望其他格和它相同的逻辑&#xff0c;可以直接复制该cell或者直接拖动该cell右下角&#xff0c;他会自动进行匹配…...

华为OD机试 - 两个字符串间的最短路径问题(Java JS Python C)

题目描述 给定两个字符串,分别为字符串 A 与字符串 B。 例如 A字符串为 "ABCABBA",B字符串为 "CBABAC" 可以得到下图 m * n 的二维数组,定义原点为(0,0),终点为(m,n),水平与垂直的每一条边距离为1,映射成坐标系如下图。 从原点 (0,0) 到 (0,A) 为水…...

强敌环伺:金融业信息安全威胁分析——钓鱼和恶意软件

门口的敌人&#xff1a;分析对金融服务的攻击 Akamai会定期针对不同行业发布互联网状态报告&#xff08;SOTI&#xff09;&#xff0c;介绍相关领域最新的安全趋势和见解。最新的第8卷第3期报告主要以金融服务业为主&#xff0c;分析了该行业所面临的威胁和Akamai的见解。我们发…...

1月1日起,贵阳市退役军人可以免费乘坐公交地铁

广大退役军人是党和国家的宝贵财富&#xff0c;是新时代中国特色社会主义现代化建设的重要力量。为切实增强退役军人的幸福感与获得感&#xff0c;贵阳市信捷科技有限公司以“心系老兵情怀&#xff0c;热忱服务人民”为服务宗旨&#xff0c;积极响应贵阳市政府号召&#xff0c;…...

网络隔离后,怎样建立高效安全的数据安全交换通道?

数据安全对企业生存发展有着举足轻重的影响&#xff0c;数据资产的外泄、破坏都会导致企业无可挽回的经济损失和核心竞争力缺失。数据流动才能让其释放价值&#xff0c;想要保护企业核心资产&#xff0c;就要实现数据安全交换。 很多企业为了防止知识产权、商业机密数据泄露&am…...

Python:PyTorch

简介 PyTorch是一个开源的机器学习库&#xff0c;由Facebook的人工智能研究团队&#xff08;FAIR&#xff09;开发&#xff0c;用于应用于机器学习和深度学习的Python程序。PyTorch基于Torch&#xff0c;使用Python语言重新编写&#xff0c;使得它更容易使用和扩展。它支持强大…...

CentOS 5/6/7 基于开源项目制作openssh 9.6p1 rpm包—— 筑梦之路

背景介绍 开源项目地址&#xff1a;https://github.com/boypt/openssh-rpms.git 该项目主要支持了centos 5 、6、7版本&#xff0c;针对使用了比较老的操作系统进行openssh安全加固&#xff0c;还是不错的项目&#xff0c;使用简单、一件制作&#xff0c;欢迎大家去支持作者。…...

python的pandas数据分析处理基础学习

pandas学习 一、 pandas基础 1. 什么是pandas&#xff1f; 一个开源的python类库&#xff1a;用于数据分析、数据处理、数据可视化 高性能容易使用的数据结构容易使用的数据分析工具 很方便和其他类库一起使用&#xff1a; numpy&#xff1a;用于数学计算 scikit-learn&a…...

【Qt-容器类】

Qt编程指南 ■ 顺序容器类■ QList■ QVector■ QLinkedList■ QStack■ QQueue ■ 关联容器类■ QSet■ QMap■ QMultiMap■ QHash■ QMultiHash ■ 顺序容器类 ■ QList QList 比较常用的容器类&#xff0c;以数组列表的形式实现&#xff0c;在前、后添加数据非常快。以下为…...

2023-12-27 语音转文字的whisper应用部署

点击 <C 语言编程核心突破> 快速C语言入门 语音转文字的whisper应用部署 前言一、部署whisper二、部署whisper.cpp总结 前言 要解决问题: 需要一款开源的语音转文字应用, 用于视频自动转换字幕. 想到的思路: openai的whisper以及根据这个模型开发的whisper.cppC应用. …...

MAVLINK生成自定义消息

git clone https://github.com/mavlink/mavlink.gitcd mavlinkgit submodule update --init --recursivepython -m mavgenerate出现以下界面 XML填写自定义xml路径&#xff0c;内容可以参考mavlink/message_definitions/v1.0 Out为输出路径 <?xml version"1.0"…...

【MediaPlayerSource】播放器源内部的音视频sender的创建和使用

来看下声网播放中的sender相关组件设计:MediaPlayerSourceDummy 是一个MediaPlayerSourceImpl ,输入音视频帧到 播放器。player_worker_ 线程触发所有操作,由外部传递,与其他组件公用 MediaPlayerSourceDummy(base::IAgoraService* agora_service, utils::worker_type play…...

【机器学习】西瓜书第6章支持向量机课后习题6.1参考答案

【机器学习】西瓜书学习心得及课后习题参考答案—第6章支持向量机 1.试证明样本空间中任意点x到超平面(w,b)的距离为式(6.2)。 首先&#xff0c;直观解释二维空间内点到直线的距离&#xff1a; 由平面向量的有关知识&#xff0c;可得&#xff1a; 超平面的法向量为 w w w&am…...

【OpenAI Q* 超越人类的自主系统】DQN :Q-Learning + 深度神经网络

深度 Q 网络&#xff1a;用深度神经网络&#xff0c;来近似Q函数 强化学习介绍离散场景&#xff0c;使用行为价值方法连续场景&#xff0c;使用概率分布方法实时反馈连续场景&#xff1a;使用概率分布 行为价值方法 DQN&#xff08;深度 Q 网络&#xff09; 深度神经网络 Q-L…...

Vue axios Post请求 403 解决之道

前言&#xff1a; 刚开始请求的时候报 CORS 错误&#xff0c;通过前端项目配置后算是解决了&#xff0c;然后&#xff0c;又开始了新的报错 403 ERR_BAD_REQUEST。但是 GET 请求是正常的。 后端的 Controller 接口代码如下&#xff1a; PostMapping(value "/login2&qu…...

【Leetcode】重排链表、旋转链表、反转链表||

目录 &#x1f4a1;重排链表 题目描述 方法一&#xff1a; 方法二&#xff1a; &#x1f4a1;旋转链表 题目描述 方法&#xff1a; &#x1f4a1;反转链表|| 题目描述 方法&#xff1a; &#x1f4a1;总结 &#x1f4a1;重排链表 题目描述 给定一个单链表 L 的头节…...

RabbitMQ 报错:Failed to declare queue(s):[QD, QA, QB]

实在没想到会犯这种低级错误。 回顾整理一下吧&#xff1a; 原因&#xff1a;SpringBoot主配置类默认只会扫描自己所在的包及其子包下面的组件。其他位置的配置不会被扫描。 如果非要使用其他位置&#xff0c;就需要在启动类上面指定新的扫描位置。注意新的扫描位置会覆盖默…...

Neo4j 5建库

Neo4j 只有企业版可以运行多个库&#xff0c;社区版无法创建多个库&#xff0c;一个实例只能运行一个库&#xff1b; 如果业务需要使用多个库怎么办呢&#xff1f; 就是在一个机器上部署多个实例&#xff0c;每个实例单独一个库名 这个库的名字我们可以自己定义&#xff1b; …...

鲁棒最小二乘法 拟合圆

​​​​​​​​​​​​​​圆拟合算法_基于huber加权的拟合圆算法-CSDN博客 首次拟合圆得到采用的上述blog中的 Ksa Fit 方法。 该方法存在干扰点时&#xff0c;拟合得到的结果会被干扰。 首次拟合圆的方法 因此需要针对外点增加权重因子&#xff0c;经过多次迭代后&…...

LeetCode——动态规划

动态规划 一、一维数组&#xff1a;斐波那契数列 爬楼梯70简单 dp定义&#xff1a; dp[i]表示爬到第i阶有多少种不同的方式 状态转移方程&#xff1a; dp[i] dp[i-1] dp[i-1] &#xff08;每次可以爬1或2个台阶&#xff09; 边界条件&#xff1a; dp[0] 1; dp[1] 1;&#…...

opencv和gdal的读写图片波段顺序问题

最近处理遥感影像总是不时听到 图片的波段错了&#xff0c;一开始不明就里&#xff0c;都是图片怎么就判断错了。 1、图像RGB波段顺序判断 后面和大家交流&#xff0c;基本上知道了一个判断标准。 一般来说&#xff0c;进入人眼的自然画面在计算机视觉中一般是rgb波段顺序表示…...

PyQt 打包成exe文件

参考链接 Python程序打包成.exe(史上最全面讲解)-CSDN博客 手把手教你将pyqt程序打包成exe(1)_pyqt exe-CSDN博客 PyInstaller 将DLL文件打包进exe_怎么把dll文件加到exe里-CSDN博客 自己的问题 按照教程走的话&#xff0c;会出现找不到“mmdeploy_ort_net.dll”文件的报错…...

【Web2D/3D】SVG(第二篇)

1. 前言 SVG&#xff08;Scalable Vector Graphics&#xff0c;可缩放矢量图形&#xff09;是一种使用XML描述2D图形的语言&#xff0c;由于SVG是基于XML&#xff08;HTML也是基于XML的&#xff09;&#xff0c;因为SVG DOM中每个元素都是可以操作的&#xff0c;包含修改元素属…...

leetcode18. 四数之和

题目描述 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;&#xff1a; …...