文章目录
- 一,索引
- ①index()函数
- ②find()函数
- ③find()和index()的区别
- 二,正则
- re模块中常用功能函数
- ①compile() ==编译==
一,索引
①index()函数
index()函数的完整语法是这样的:
str.index(str, beg=0, end=len(string))
str – 指定检索的字符串
beg – 开始索引,默认为0。
end – 结束索引,默认为字符串的长度。
该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
例如
a=[22,33,44,55]
print(a.index(22))
0
a = '''正在 Ping www.baidu.com [220.181.112.244] 具有 32 字节的数据:
来自 220.181.112.244 的回复: 字节=32 时间=190ms TTL=53
来自 220.181.112.244 的回复: 字节=32 时间=59ms TTL=53
来自 220.181.112.244 的回复: 字节=32 时间=83ms TTL=53
来自 220.181.112.244 的回复: 字节=32 时间=125ms TTL=53
220.181.112.244 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 59ms,最长 = 190ms,平均 = 114ms'''
print('这个字符串内第一个w字符的位置是:',a.index('w'))
print(type(a.index('w')))
print('这个字符串内第一个w字符的位置是:',a.find('w'))
print('这个字符串内第二个w字符的位置是:',a.index('w',a.index('w')+1)) #a.index('w')+1 相当与位置
print('这个字符串内第二个w字符的位置是:',a.find('w',a.find('w')+1))
print('这个字符串内最后一次出现w字符的位置是:',a.rfind('w'))
这个字符串内第一个w字符的位置是: 8
<class ‘int’>
这个字符串内第一个w字符的位置是: 8
这个字符串内第二个w字符的位置是: 9
这个字符串内第二个w字符的位置是: 9
这个字符串内最后一次出现w字符的位置是: 1
寻找ip地址
start_1 = a.find('[')+1
end_1 = a.find(']')
print('百度的IP地址为:',a[start_1:end_1])
a[:]---->是寻找a中的范围,左闭右开。
百度的IP地址为: 220.181.112.244
②find()函数
find函数的完整语法如下
str.find(str, beg=0, end=len(string
str – 指定检索的字符串
beg – 开始索引,默认为0。
end – 结束索引,默认为字符串的长度
检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内包含指定索引值,则返回索引值在字符串中的起始位置,否则返回-1。
a = 'china number1'
print(a.find('Q'))
print(a.find('c'))
print(a.find('nu'))
-1
0
6
③find()和index()的区别
可见,index()方法在没有找到指定字符串的时候会抛出异常.
另外,index()也可以用于List对象,返回指定元素的索引,用法相同.
二,正则
re模块中常用功能函数
①compile() 编译
编译正则表达式模式,返回一个对象的模式。(可以把那些常用的正则表达式编译成正则表达式对象,这样可以提高一点效率。
格式
re.compile(pattern,flags=0)
pattern: 编译时用的表达式字符串。
flags 编译标志位,用于修改正则表达式的匹配方式,如:是否区分大小写,多行匹配等。常用的flags有:
标志 | 含义 |
re.S | 使.匹配包括换行在内的所有字符 |
re.I | 使匹配对大小写不敏感 |
re.L | 做本地化识别(locale-aware)匹配,法语等 |
re.M | 多行匹配,影响^和$ |
re.X | 该标志通过给予更灵活的格式以便将正则表达式写得更易于理解 |
re.U | 根据Unicode字符集解析字符,这个标志影响\w,\W,\b,\B |
寻找ip地址
import re
pattern = re.compile(r'((\d+\.)+\d+)')
print(pattern) #无意义,只是看一下什么是什么
print(type(pattern) #无意义,只是看一下它的类型
result_1 = pattern.findall(a)
print(result_1)
print('百度的IP地址为:',result_1[0][0])
re.compile(’((\d+\.)+\d+)’)
<class ‘_sre.SRE_Pattern’>
[(‘220.181.112.244’, ‘112.’), (‘220.181.112.244’, ‘112.’), (‘220.181.112.244’, ‘112.’), (‘2
20.181.112.244’, ‘112.’), (‘220.181.112.244’, ‘112.’), (‘220.181.112.244’, ‘112.’)]
百度的IP地址为: 220.181.112.244