python怎么找到字符串特定字符的左右

Python012

python怎么找到字符串特定字符的左右,第1张

字符

使用rfind()和rindex()方法可以找到特定字符的位置,然后可以使用切片操作查找左右字符:

str = 'Hello World'

# 找到字符o的位置

pos = str.rfind('o')

# 查找字符o左右字符

left_char = str[pos-1]

right_char = str[pos+1]

print(left_char,right_char)

# 输出:l d右字符

使用rfind()和rindex()方法可以找到特定字符的位置,然后可以使用切片操作查找左右字符:

str = 'Hello World'

# 找到字符o的位置

pos = str.rfind('o')

# 查找字符o左右字符

left_char = str[pos-1]

right_char = str[pos+1]

print(left_char,right_char)

# 输出:l d

读文件的模式有很多种不一一列举,r+表示打开一个文件用于读写。文件指针将会放在文件的开头。

def readFile(path):

#R

with open(path,"r+") as f:

for line in f:

print(line)

f.close()

print("读文件完成")

path="D:\\tmp\\manim\\file\\1.txt"

readFile(path)

查找字符串位置,str.find(target) 返回起始点位置如果是-1则表示不存在

"123WWW".find("WWW")

文件指针偏移到指定位置

#文件路径,原字符串,要替换成的目标字符串

def replaceText(filePath,sourceText,targetText):

if(len(sourceText)!=len(targetText)):

raise Exception("原始字符串长度与目标字符串不符,容易覆盖有用信息", sourceText,targetText)

with open(filePath,'r+') as f:

line=f.readline()

index=0

# 遇到中间空行的可以自行观察并不是空字符串

while ( line!=""):

print(line)

# 本行内字符串所在位置

windex=line.find(sourceText)

if(windex!=-1):

print("windex={}".format(windex))

print("当前位置:{},替换内容起点:{}".format(f.tell(),index+windex))

f.seek(index+windex)

f.write(targetText)

# f.flush()

f.seek(index)

# 返回当前文件指针,应该是新一行的开始位置

index=f.tell()

line=f.readline()

f.close()

print("文件修改完毕")

字符串是7种序列类型中的一种。

除了序列的操作函数,比如len()来求字符串长度之外,Python还为字符串提供丰富到可以写个编辑器的API.

首先,下面的查找API都是为了查找位置,或者查一共有几次这样的操作。

如果只是想判断一个字符串是不是另一个字符串的子串的话,使用序列的in运算符就可以了。

例:

原型:str.count(sub[, start[, end]])

字符串的count函数可以数出来有多少次匹配,我们看个例子,有5个ha和3个hei

输出为5和2.

haha只能匹配两次。

再加上扩展参数:

find函数的行为是,如果能找到,则返回在序列中的坐标,如果找不到,则返回-1. rfind是从右向左查找。我们来看例子:

输出值为0和6.

找不到的例子:

输出值都是-1.

完整形式:

index和rindex的功能与find和rfind基本上一致,除了在找不到时会抛出ValueError异常而不是返回-1.

例:

所以我们需要加try...except语句来处理之:

有时候,我们希望做从头匹配或者匹配尾部。这时候就要用到startswith函数和endswith函数。例:

这两个返回值均为True.

如果需要更复杂的匹配,还是需要正则表达式。与Java等语言不同,Python中的正则表达式有专门的模块,字符串的API不负责这个事情。