关于正则表达式的简单记忆
一.限定符
字符 | 描述 |
---|---|
* | 匹配前面的子表达式零次或多次。* 等价于{0,}。 |
+ | 匹配前面的子表达式一次或多次。+ 等价于 {1,}。 |
? |
匹配前面的子表达式零次或一次。? 等价于 {0,1}。 例如,do(es)? 可以匹配 do 、 does 中的 does 、 doxy 中的 do 。
|
^ | 1.匹配输入字符串的开始位置 2.在[ ]中使用时,表示不匹配[ ]中的字符集合。 |
$ | 匹配输入字符串的结尾位置。 |
{n} |
n 是一个非负整数。匹配确定的 n 次。 例如,o{2} 不能匹配 Bob 中的 o ,但是能匹配 food 中的oo 。
|
{n,} |
n 是一个非负整数。至少匹配n 次。 例如,o{2,} 不能匹配 Bob 中的 o ,但能匹配 foooood 中的所有 oooooo 。‘o{1,}’ 等价于 ‘o+’。‘o{0,}’ 则等价于 ‘o*’。
|
{n,m} |
m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。 例如,o{1,3} 将匹配 fooooood 中的前三个 ooo 。‘o{0,1}’ 等价于 ‘o?’。请注意在逗号和两个数之间不能有空格。
|
( ) | 标记一个子表达式的开始和结束位置。即分组匹配。 |
[ ] |
符合 [ ]中的任一字符就匹配。例如,a[bcd]f 可以匹配acf , 但不能匹配agf
|
| |
指明两项之间的一个选择。例如,s|\d+ 可以匹配出a ,b ,52 ,6
|
二.预定义字符
字符 | 描述 | 规则 | 结果 |
---|---|---|---|
\d | \d匹配任何十进制数,它相当于类[0-9] \d+如果需要匹配一位或者多位数的数字时用 | a\dc | a1c |
\D | \D匹配任何非数字字符,它相当于类[ ^0-9 ] | a\Dc | abc |
\s | \s匹配任何空白字符,它相当于类[\t\n\r\f\v] | a\sc | a c |
\S | \S匹配任何非空白字符,它相当于类[ ^\t\n\r\f\v ] | a\Sc | abc |
\w | \w匹配包括下划线在内任何字母数字字符,它相当于类[a-zA-Z0-9_] | a\wc | abc |
\W | \W匹配非任何字母数字字符包括下划线在内,它相当于类[ ^a-zA-Z0-9_ ] | a\Wc | a c |
三.python中re模块常用函数
re.findall() 匹配所有符合规则的字符串
语法:
findall(pattern, string, flags=0)
# pattern: 正则模型
# string : 要匹配的字符串
# falgs : 匹配模式
re.match() 从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None
语法:
match(pattern, string, flags=0)
# pattern: 正则模型
# string : 要匹配的字符串
# falgs : 匹配模式
re.search() 浏览全部字符串,直到匹配出第一个符合规则的字符串
语法:
search(pattern, string, flags=0)
# pattern: 正则模型
# string : 要匹配的字符串
# falgs : 匹配模式
注意:search()和match()的区别
match() 从第一个字符开始匹配, 如果第一个字符不匹配就返回None, 不再继续匹配。
search() 在整个字符串查找,直到找到一个匹配的字符。
re.split() 根据正则匹配分割字符串,返回分割后的一个列表
语法:
split(pattern, string, maxsplit=0, flags=0)# pattern: 正则模型
# string : 要匹配的字符串
# maxsplit:指定分割个数
# flags : 匹配模式
re.sub() 替换匹配成功的指定位置字符串
语法:
sub(pattern, repl, string, count=0, flags=0)# pattern: 正则模型
# repl : 要替换的字符串
# string : 要匹配的字符串
# count : 指定匹配个数
# flags : 匹配模式
关于正则表达式的简单记忆相关推荐
- GNU/Linux平台上正则表达式的简单使用
友情提醒:本博文涉及的内容中涉及到的系统实践操作在Centos6.5上实现,GNU/Linux简称为linux,GNU/grep简称为grep,GNU/sed简称为sed,GNU/gawk简称为awk ...
- python 长度为8-10位的用户密码 : 包含数字字母下划线 正则表达式(简单易懂,代码可以指运行)
python 长度为8-10位的用户密码 : 包含数字字母下划线 正则表达式(简单易懂,代码可以指运行) 用\w,[0-9a-zA-Z_]都可以匹配上去嗷~~,直接上代码: #匹配8-10位用户密码: ...
- 正则表达式的简单用法+利用正则表达式检验身份证号码格式
正则表达式最简单的用法就是用来判断一个字符串是否符合某种表达式,可以用正则表达式判断字符串是否属于电话号码,是否属于身份证号.... 使用正则表达式的步骤很简单: 首先:规定正则表达式, String ...
- hdu1978 简单记忆化搜索
题意: How many ways Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- Python正则表达式,简单20个用例学习
import re 1 查找第一个匹配串 s = 'i love python very much' pat = 'python' r = re.search(pat,s) print(r.span( ...
- JavaScript正则表达式快速简单的指南
Interested in learning JavaScript? Get my ebook at jshandbook.com 有兴趣学习JavaScript吗? 在jshandbook.com上 ...
- 全网最新正则表达式总结- 简单 便捷 (适用于新手学习正则表达式,老手巩固学习正则表达式)
什么是正则表达式? 正则表达式是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子. 一个正则表达式是在一个主体字符串中从左到右匹配字符串时的一种样式. "Reg ...
- python中正则表达式的简单应用_Python正则表达式详细应用
原文地址:http://www.jb51.net/article/65286.htm 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合, ...
- java正则匹配英文句号_java正则表达式最简单 学习教程
本大教程以一个验证手机号的表达式为例,学完本例后,基本上所有的表达式都能看懂了,但是如果想要达到上手就能写的程度,还需要多练习多测试 呀! 来看 这样一个代码 String mobilePhoneRe ...
最新文章
- Django视图之状态保持
- Python argparse
- 阶梯到XML:1级 - XML简介
- 【Web】JavaWeb项目为什么我们要放弃jsp?为什么要前后端解耦?为什么要前后端分离?2.0版,为分布式架构打基础。 - CSDN博客
- 爱因斯坦提出的逻辑性问题_提出正确问题的重要性
- 卸载linux订阅包
- Eclipse简明使用教程(java集成开发环境)
- 咸阳强生告诉你吃什么食物养胃效果好
- 【LOJ6198】谢特(后缀自动机)(01Trie)(dsu on tree)
- 2021秋招IC验证面经-华为/英伟达/兆易创新/ZeKu
- Android app性能优化解决卡慢顿之布局优化
- 整流十五—网侧低频电流谐波抑制方法及其稳定性分析
- teamviewer检测到商业用途的解决办法(win7 win8 win10亲测) 修改teamviewerID
- 引擎选择:GameMaker
- php联想输入,联想笔记本电脑键盘功能基础知识
- 云服务器和云虚拟主机有什么区别
- 宽温Android触摸屏,7寸刷卡工控一体机支持IC/ID卡安卓触摸屏
- RabbitMQ消息队列工作原理及集成使用
- 严重性代码说明项目文件行禁止显示状态错误LNK2019无法解析的外部符号 main,函数 “int __cdecl invoke_main(void)“ (? invoke_main@@YAHX
- C语言:初识数组及数组的复制