python3-字符串的查找与判断

666 阅读1分钟

来自python3学习笔记,有不正确的地方大家多多指教

一、判断字符串出现的位置

# 判断一个字符串是否包含某个指定的字符串
str = "python test th hello world"
str1 = "hello"
str2 = "string"
str3 = "th"
str4 = "or"

# find
print(str.find(str1))   # 输出:15,表示该字符串在下标为15的位置上
print(str.find(str2))   # 输出:-1,表示该字符串未找到
print(str.find(str3))   # 输出:2,表示该字符串第一次在下标为2的位置上

# rfind
print(str.rfind(str1))   # 输出:15,表示该字符串在下标为15的位置上
print(str.rfind(str2))   # 输出:-1,表示该字符串未找到
print(str.rfind(str3))   # 输出:12,从右往左查找,该字符串第一次出现在的位置

# index
print(str.index(str1))   # 输出:15,表示该字符串在下标为15的位置上
print(str.index(str3))   # 输出:2,表示该字符串第一次在下标为2的位置上
print(str.index(str2))   # 报错,字符串未找到

# rindex
print(str.rindex(str1))   # 输出:15,表示该字符串在下标为12的位置上
print(str.rindex(str3))   # 输出:12,从右往左查找,该字符串第一次出现在的位置
print(str.rindex(str2))   # 报错,字符串未找到

下面查看各个方法的区别

1.find() 和 rfind()

image.png

2.find() 和 index()

image.png

3.index() 和 rindex()

image.png

二、断言:在文件中是否存在该字符串

文件包含的内容(include.yaml文件)

- python test th hello world
- hello
- string
- th
- 666
- or

1.使用正则表达式查找

import re

path = r"E:\study\Fork\python\PC_ShiLi\python3_test\include.yaml"
with open(path, encoding='utf-8') as file:
    datafile = file.read()
result = re.findall(r'\d+', datafile)
print(result)

输出:

image.png

2.使用循环查找

path = r"E:\study\Fork\python\PC_ShiLi\python3_test\include.yaml"
temp = "hello"
with open(path, encoding='utf-8') as file:
    datafile = file.readlines()
for line in datafile:
    if temp in line:
        print("temp")
    else:
        print("not found!")

输出:

image.png