正则表达式

正则表达式
1、正则表达式指令
\d:匹配任意一个数字字符,等价于[0-9]
\D:匹配任意一个非数字字符,等价于[^0-9]
\w:匹配任意一个字母、数字、或下划线字符,等价于[A-Za-z0-9_]
\W:匹配任意一个非字母、数字、或下划线字符,等价于[^A-Za-z0-9_]
\n:匹配一个换行符
\r:匹配一个回车符
\f:匹配一个换页符
\t:匹配一个制表符
\s:匹配所有空白字符:\n、\r、\f、\t
\S:匹配非空白字符
\b:匹配单词边界
\B:匹配非单词边界


^:匹配字符串开始的位置
$:匹配字符串结束的位置
.:匹配\n、\r之外的所有单个字符
[abc]:匹配列出的任意一个字符
[^abc]:匹配未列出的任意一个字符
[a-z]:匹配a-z指定范围内的任意一个字符
[^a-z]:匹配不在a-z指定范围内的任意一个字符
{n}:匹配确定的n次
{n,m}:匹配n-m次
{n,}:匹配至少n次
*:匹配0次或多次,等价于{0,}
+:匹配1次或多次,等价于{1,}
?:匹配0次或1次,等价于{0,1}
a|b:匹配a或b

(str):匹配并获取子字符串str
(?:str):匹配但不获取子字符串str
(?=str):正向肯定预查,匹配后接字符(非获取匹配)
(?!str):正向否定预查,匹配除了后接字符以外的字符(非获取匹配)
(?<=str):反向肯定预查,匹配前接字符(非获取匹配)
(?<!str):反向否定预查,匹配除了前接字符以外的字符(非获取匹配)


* 分组输出匹配结果:re.group()  输出全部分组;re.group(1)  输出第一组匹配结果。
    * group组命名:(?P<组名>正则表达式)   =>    re.group(组名)

* 寻找所有匹配结果:re.findall(r’正则表达式’,’文本’)

* 替换匹配结果:re.sub (r’正则表达式’,’替换内容’,’文本’)

* 利用匹配结果进行分割:re.split(r’正则表达式’,’文本’)。
    *  例:re.split(r’[,;\.  \\]’,’a,b;c. d\ e’)   =>  [‘a’,‘b’,‘c’,‘d’,‘e’]

* 包装正则表达式:compile_re = re. compile()    compile_re.findall(‘文本’)





2、常见正则表达式:
匹配数字
* 1、不固定位数的数字:^  \d*  $
* 2、固定n位的数字:^  \d{n}  $
* 3、至少n位的数字:^  \d{n,}  $
* 4、n-m位的数字:^  \d{n,m}  $
* 5、零开头的数字:^(0  [0-9]*)$
*       非零开头的数字:^([1-9]  [0-9]*)$
* 6、非零开头的最多带两位小数的数字:^([1-9]  [0-9]*)+  (\.  [0-9]{1,2})?  $
* 7、最多带2位小数的正数或负数:^(\-)?  \d+  (\.  \d{1,2})?  $
* 8、正数、负数、和小数:^(\-  |  \+)?  \d+  (\.  \d+)?  $
* 9、有两位小数的正实数:^[0-9]+  (\.  [0-9]{2})?  $
* 10、最多有3位小数的正实数:^[0-9]+  (\.  [0-9]{1,3})?  $
* 11、非零的正整数:^\+?  [1-9]  \d*  $
* 12、非零的负整数:^\-  [1-9]  \d*  $ 
* 13、非负整数:^\d+  $
* 14、非正整数:^\-  [1-9]\d*  |  0  $
* 15、浮点数:^(\-?  \d+)  (\.  \d+)?$


匹配字符
* 1、汉字:^  [\u4e00 - \u9fa5]+  $
* 2、英文和数字:^ [A-Za-z0-9]+ $
* 3、长度为n-m的所有字符:^  .{n,m}  $
* 3、字母组成的字符串:^  [A-Za-z]+  $
* 5、大写字母组成的字符串:^[A-Z]+$
* 6、小写字母组成的字符串:^[a-z]+$
* 7、由数字和字母组成的字符串:^[A-Za-z0-9]+$
* 8、由数字、字母或者下划线组成的字符串:^  \w+  $
* 9、中文、英文、数字包括下划线:^  [\u4E00-\u9FA5  A-Za-z  0-9  _]+  $
* 10、中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5  A-Za-z  0-9]+$

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值