正则表达式一
来源:互联网 发布:淘宝呼死你哪里有卖 编辑:程序博客网 时间:2024/06/06 19:31
在编写处理字符串或者网页的时候,常常会有查找某些复杂规则字符串的需要。
注意:正则表达式匹配的只有字符串
方法介绍
search()方法
search()方法用于搜索正则表达式模式第一次出现的位置
import rere.search(r'FishC' , 'I love FishC.com')
输出结果
<_sre.SRE_Match object; span=(7, 12), match='FishC'>
使用search()方法时最好对于要搜索的字符串前加一个r,这样能过避免很多不必要的麻烦。另外注意搜素位置是从0开始的。如果找不到返回None
在正则表达式中”.”可以表示除了换行符之外的任何字符 如
re.search(r'.' , 'I love FishC.com')
返回的是第0个位置
<_sre.SRE_Match object; span=(0, 1), match='I'>
如果只想单单匹配”.”本身用\就行
re.search(r'\.' , 'I love FishC.com')
结果:
<_sre.SRE_Match object; span=(12, 13), match='.'>
\还有特殊能力,比如用”\d”可以匹配任何数字
re.search(r'\d' , 'I love 123 FishC.com')
结果:
<_sre.SRE_Match object; span=(7, 8), match='1'>
如果
re.search(r'\d\d\d' , 'I love 123 FishC.com')
则会将123全部匹配
<_sre.SRE_Match object; span=(7, 10), match='123'>
匹配IP地址
为了表示字符串的范围可以创建一个字符类的东西: []
字符类的含义是只要匹配字符类的任意一个字符都算匹配
如匹配元音字符
re.search(r'[aeiou]' , 'I love 123 FishC.com')
因为正则表达式默认对大小写敏感,所以输出结果如下:
<_sre.SRE_Match object; span=(3, 4), match='o'>
如果想匹配“I”可以这样写:
re.search(r'[aeiouAEIOU]' , 'I love 123 FishC.com')
要注意的是字符类中任何一个类匹配成功,就算匹配成功
正则表达式中用”-“表示范围
re.search(r'[a-z]' , 'I love 123 FishC.com')<_sre.SRE_Match object; span=(2, 3), match='l'>
用{}来解决重复的次数
大括号表示大括号前一个字符重复的次数
re.search(r'ab{3}c' , 'abbbc abbc')<_sre.SRE_Match object; span=(0, 5), match='abbbc'>
还可以添加范围:
re.search(r'ab{1,4}c' , 'abbc abbbc')<_sre.SRE_Match object; span=(0, 4), match='abbc'>
但要注意的是:正则表达式匹配的只有字符串
re.search(r'[0-255]' , '188')<_sre.SRE_Match object; span=(0, 1), match='1'>
这里之所以匹配的是1而不是188的原因是数字对于字符来说只有0-9,所有的数字都是由0-9这几个字符组成的
因此[0-255]字符类表示的是[0-2]和两个5。所以实际匹配的是0、1、2、5这四个数字中的任何一个
如果真的想匹配到188该如何操作呢:
re.search(r'[01]\d\d|2[0-4]\d|25[0-5]', '188')<_sre.SRE_Match object; span=(0, 3), match='188'>
这段代码由三个或语句连接,“[01]\d\d”表示如果百位是0或1,那么各位和十位可以是任意数字。“2[0-4]\d”表示的是如果百位是2,十位是0-4,那么各位可以是任意数字。最后一个同理。
匹配IP地址
# 此处的(([01]{0,1}\d\d|2[0-4]{0,1}\d|25[0-5]|\d\d|\d)表示一个分组,后面跟着{3}表示重复查询三次#{0,1}表示0或1均可,如果不加的话必须是三位数才能被查到,与实际不符#{3}后面又加了一串是最后一位,因为不需要查‘.’所以单独写一遍re.search(r'(([01]{0,1}\d\d|2[0-4]{0,1}\d|25[0-5]|\d\d|\d)\.){3}([01]{0,1}\d\d|2[0-4]{0,1}\d|25[0-5]|\d\d|\d)','192.168.41.8')<_sre.SRE_Match object; span=(0, 12), match='192.168.41.8'>
阅读全文
0 0
- 正则表达式(一)
- 正则表达式(一)
- 正则表达式一字符
- 正则表达式使用指南一
- 常用正则表达式一
- 正则表达式学习一
- 正则表达式(一)
- 正则表达式解析一
- 正则表达式(一)
- 正则表达式(一)
- 正则表达式(一)
- 正则表达式规则(一)
- 正则表达式学习一
- 正则表达式(一)
- Python正则表达式(一)
- 正则表达式学习(一)
- 正则表达式(一)
- Java正则表达式一
- Hdu2204 Eddy's爱好
- 异步修改+显示隐藏
- iOS 敏捷开发项目实战
- 如何去掉UITableView中多余的cell
- 选择排序
- 正则表达式一
- Error:Execution failed for task ':pulltorefresh:processDebugAndroidTestManifest'.
- easyUI-combobox 往里面动态添加 option列 及combobox的使用
- 使用配置文件自动备份远程oracle数据库
- 消息队列设计精要
- android developer tiny share-20170627
- IPC----信号量
- urlparse学习
- Web前端PS基础