3 分钟了解正则表达式在 Python 中的用法
lipiwang 2025-03-25 15:03 7 浏览 0 评论
正则表达式是一种强大的文本处理工具,它可以帮助我们在文本中搜索、匹配、替换特定的字符串。在Python中,我们可以使用re模块来使用正则表达式。本文将介绍正则表达式的基础知识和常用操作,帮助大家更好地掌握这一工具。
一、正则表达式的基础语法
正则表达式是由一些特殊字符和普通字符组成的字符串,用于描述一些特定的文本模式。下面是一些常见的正则表达式特殊字符:
- ".":匹配任意一个字符,除了换行符。
- "^":匹配字符串的开头。
- "$":匹配字符串的结尾。
- "*":匹配前面的字符零次或多次。
- "+":匹配前面的字符一次或多次。
- "?":匹配前面的字符零次或一次。
- "[]":匹配方括号中的任意一个字符。
- "[^]":匹配不在方括号中的任意一个字符。
- "|":匹配两个或多个表达式中的任意一个。
例如,正则表达式"hello"可以匹配字符串"hello",但不能匹配"Hello"或"hell"。而正则表达式"^hello"可以匹配以"hello"开头的字符串,如"hello world"。
二、常用的正则表达式操作
- re.match():从字符串的开头开始匹配正则表达式,如果匹配成功则返回一个匹配对象,否则返回None。
例如,下面的代码可以匹配以"hello"开头的字符串:
import re
string = "hello world"
pattern = "^hello"
result = re.match(pattern, string)
if result:
print("匹配成功")
else:
print("匹配失败")
- re.search():在字符串中搜索正则表达式,如果匹配成功则返回一个匹配对象,否则返回None。
例如,下面的代码可以匹配包含"world"的字符串:
import re
string = "hello world"
pattern = "world"
result = re.search(pattern, string)
if result:
print("匹配成功")
else:
print("匹配失败")
- re.findall():在字符串中搜索正则表达式,返回所有匹配的字符串组成的列表。
例如,下面的代码可以匹配所有的数字:
import re
string = "123abc456def789"
pattern = "\d+"
result = re.findall(pattern, string)
print(result)
- re.sub():在字符串中搜索正则表达式,将匹配的字符串替换为指定的字符串。
例如,下面的代码可以将所有的空格替换为"-":
import re
string = "hello world"
pattern = "\s+"
replacement = "-"
result = re.sub(pattern, replacement, string)
print(result)
三、常见的正则表达式应用
- 匹配邮箱地址
import re
string = "my email is abc123@gmail.com"
pattern = "\w+@\w+\.\w+"
result = re.search(pattern, string)
if result:
print("匹配成功")
else:
print("匹配失败")
- 匹配手机号码
import re
string = "my phone number is 13812345678"
pattern = "1[3-9]\d{9}"
result = re.search(pattern, string)
if result:
print("匹配成功")
else:
print("匹配失败")
- 匹配IP地址
import re
string = "my ip address is 192.168.1.1"
pattern = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"
result = re.search(pattern, string)
if result:
print("匹配成功")
else:
print("匹配失败")
四、总结
本文介绍了正则表达式的基础知识和常用操作,希望能够帮助大家更好地理解和使用这一工具。在实际应用中,我们可以根据需要自定义正则表达式,以实现更加精确的匹配和处理。
相关推荐
- httpclient+jsoup实现小说线上采集阅读
-
前言 用过老版本UC看小说的同学都知道,当年版权问题比较松懈,我们可以再UC搜索不同来源的小说,并且阅读,那么它是怎么做的呢?下面让我们自己实现一个小说线上采集阅读。(说明:仅用于技术学习、研究) ...
- Python3+requests+unittest接口自动化测试实战
-
一、Requests介绍RequestsisanelegantandsimpleHTTPlibraryforPython,builtforhumanbeings.翻译过来就是...
- 授权码 + PKCE 模式|OIDC & OAuth2.0 认证协议最佳实践系列【03】
-
在上一篇文章中,我们介绍了OIDC授权码模式,本次我们将重点围绕授权码+PKCE模式(AuthorizationCodeWithPKCE)进行介绍,从而让你的系统快速具备接入用户认...
- JWT 在 Java Web 开发中的奇妙应用
-
JWT在JavaWeb开发中的奇妙应用在当今的互联网世界里,安全始终是一个绕不开的话题。而当我们谈论到Web应用的安全性时,认证和授权绝对是其中的核心部分。说到这,我忍不住要给大家讲个笑话...
- 动手操作:一个 OAuth 2 应用程序(2) - 配置 Keycloak 为授权服务器
-
接上一篇《动手操作:一个OAuth2应用程序(1)-应用程序场景》进行场景分析后,本篇就开始动手实现授权服务器。在本文中,我们将Keycloak配置为系统的授权服务器(图3)。...
- JSON Web Token是什么?
-
JSONWebToken(缩写JWT)是目前最流行的跨域认证解决方案。传统的session认证http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证...
- Keycloak Servlet Filter Adapter使用
-
KeycloakClientAdapters简介Keycloakclientadaptersarelibrariesthatmakeitveryeasytosecurea...
- 使用JWT生成token
-
一、使用JWT进行身份验证1、传统用户身份验证Internet服务无法与用户身份验证分开。一般过程如下:用户向服务器发送用户名和密码。验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中...
- 在word中通过VBA调用百度翻译API在线翻译
-
一天的时间,借助各种AI终于解决了这个问题:在word中通过VBA调用百度翻译API进行在线翻译。给我的word又添加了一项神技。先上代码:Sub宏5()''宏5宏Dimapp...
- API 安全之认证鉴权
-
作者:半天前言API作为企业的重要数字资源,在给企业带来巨大便利的同时也带来了新的安全问题,一旦被攻击可能导致数据泄漏重大安全问题,从而给企业的业务发展带来极大的安全风险。正是在这样的背景下,Ope...
- 用WordPress建站哪些插件会拖慢速度影响排名?
-
你是否发现网站加载总慢半拍,SEO排名死活上不去?八成是插件惹的祸!80%的站长不知道,WordPress插件用错类型或配置不当,分分钟让网站速度暴跌,爬虫抓取效率直接砍半。缓存插件没装对,越用越卡你...
- JavaScript报错了?不要慌!怎么看怎么处理都在这里
-
在开发中,有时,我们花了几个小时写的JS代码,在游览器调试一看,控制台一堆红,瞬间一万头草泥马奔腾而来。至此,本文主要记录JS常见的一些报错类型,以及常见的报错信息,分析其报错原因,并给予处理...
-
- 跨站脚本攻击(四)
-
04XSS漏洞挖掘技巧4.1常见的绕过姿势实际应用中web程序往往会通过一些过滤规则来阻止带有恶意代码的用户输入被显示,但由于HTML语言的松散性和各种标签的不同优先级,使得我们绕过过滤规则成为了可能。4.1.1利用大小写绕过HTML标签...
-
2025-05-24 15:21 lipiwang
- WAF-Bypass之SQL注入绕过思路总结
-
过WAF(针对云WAF)寻找真实IP(源站)绕过如果流量都没有经过WAF,WAF当然无法拦截攻击请求。当前多数云WAF架构,例如百度云加速、阿里云盾等,通过更改DNS解析,把流量引入WAF集群,流量经...
- Springboot之登录模块探索(含Token,验证码,网络安全等知识)
-
简介登录模块很简单,前端发送账号密码的表单,后端接收验证后即可~淦!可是我想多了,于是有了以下几个问题(里面还包含网络安全问题):1.登录时的验证码2.自动登录的实现3.怎么维护前后端登录状态在这和大...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)