Python初识模块之正则表达式
大家好,又见面了,我是你们的朋友全栈君。
什么是正则表达式
正则表达式是字符串匹配的一种规则,在线测试工具http://tool.chinaz.com/regex/
[字符组]在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示
字符分为很多类,比如数字、字母、标点等等。
假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。
[0-9]、[a-z]、[A-Z]、[0-9a-z]等等都是字符组的应用,注意一个字符组只匹配一个字符哦
字符:
元字符 匹配内容
. 除换行符以外的任意字符
\w 匹配字母,数字,下划线 –word
\s 匹配所有空白符 –space
\d 匹配数字 –digit
\W 匹配非字母,数字,下滑线的字符
\S 匹配非空白符
\D 匹配非数字
\n 匹配一个换行符
\t 匹配制表符 –table
.\b 匹配一个单词的结尾(不好用)
^ 匹配字符串的开头
匹配字符串的结束,与^连用可以严格约束字符串 eg: ^[a-z]只能匹配一个字母
| 或,从左到右匹配,所以长的应该在前,短的在后
() 表示一个组
[^…] 除了…的所有字符 eg: [^a-z]
量词:用来约束紧跟着的字符,贪婪匹配,尽可能匹配多次
* 表示重复0次或多次
+ 表示重复1次或多次
? 表示重复0次或1次
{n} 重复n次
{n,} 重复n次或多次
{n,m} 重复n次或m次
在量词后面加上?就变成了非贪婪匹配,也叫惰性匹配
忘川和忘清和忘了学习
忘.? 忘川 忘清 忘了 ?0次或1次
忘.* 忘川和忘清和忘了学习 0次或多次
忘.+ 忘川和忘清和忘了学习 1次或多次
忘.{1,2} 忘川和 忘清和 忘了学 1次或2次
忘.*? 忘 忘 忘 加上?时变成了惰性匹配
忘[川清了学习]* 忘川 忘清 忘了学习
忘[^和]* 忘川 忘清 忘了学习
转义符 \
在正则表达式中,有很多有特殊意义的是元字符,比如\n和\s等,如果要在正则中匹配正常的”\n”而不是”换行符”就需要对”\”进行转义,变成’\\’。
但在很多时候这样会很麻烦,所以可以在使用正则时在想要匹配的字符串前加上r eg: r’\n’
贪婪匹配+?
*? 重复任意次,但尽可能少重复 +? 重复1次或更多次,但尽可能少重复 ?? 重复0次或1次,但尽可能少重复 {n,m}? 重复n到m次,但尽可能少重复 {n,}? 重复n次以上,但尽可能少重复
.*?x 重复任意次,直到x出现
转载于:https://www.cnblogs.com/xfdhh/p/9943489.html
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158394.html原文链接:https://javaforall.cn
相关文章
- Python获取时间戳_python爬虫时间戳
- pycharm自带python环境吗_Python IDE环境之 新版Pycharm安装详细教程[通俗易懂]
- Python多线程通信_python socket多线程
- Python正则表达式,这一篇就够了!
- python fileinput_Python之fileinput模块学习「建议收藏」
- python编程是啥-Python编程「建议收藏」
- Python入门系列(十)一篇学会python文件处理
- 【说站】Python特殊传参如何实现
- 【说站】python复合赋值运算符是什么
- Python标识符的命名规则,下列哪些是对的?_python标识符不能使用关键字
- Python学生信息管理系统课程设计报告_python做的项目管理系统
- Python 生成随机数_python 随机字符串
- Python正则表达式模块:re
- 软件测试|带你了解Python正则表达式模块(一)
- Python操作Redis实现数据持久化(python操作redis)
- 使用Python连接SQL Server数据库(python连接sqlserver)
- Facebook 发布开源框架 PyTorch, Torch 终于被移植到 Python 生态圈
- Linux系统下安装Python模块指南(linux安装python模块)