如何用Python来进行查询和替换一个文本字符串

Python017

如何用Python来进行查询和替换一个文本字符串,第1张

1、说明

可以使用find或者index来查询字符串,可以使用replace函数来替换字符串。

2、示例

1)查询

>>>'abcdefg'.find('cde')

结果为2

'abcdefg'.find('acde')

结果为-1

'abcdefg'.index('cde')

结果为2

2)替换

'abcdefg'.replace('abc','cde')

结果为'cdedefg'

3、函数说明

1)find(...)

S.find(sub[, start[, end]]) ->int

返回S中找到substring sub的最低索引,使得sub包含在S [start:end]中。 可选的 参数start和end解释为切片表示法。

失败时返回-1。

2)index(...)

S.index(sub[, start[, end]]) ->int

与find函数类似,但是当未找到子字符串时引发ValueError。

3)replace(...)

S.replace(old, new[, count]) ->str

返回S的所有出现的子串的副本旧换新。 如果可选参数计数为给定,只有第一个计数出现被替换。

字符串操作在各个计算机语言中都是比较常见的操作,下面我们对python的字符串操作做下简单介绍。

一、索引操作

字符串是由一些连续的字符组成,支持索引操作,索引位置从0开始,比如以下代码会输出’P‘字符:

二、截取子串

字符串也可以像列表那样给定起始与终止索引生成一个新的子串,比如以下代码会输出“Py”:

三、连接操作

多个字符串相加会生成一个新串,比如以下代码输出”Love Python“:

四、大小写转换

调用字符串的upper与lower方法会分别生成新的大写和小写的字符串,比如以下代码第一个输出:”I LOVE PYTHON“,第二个输出:”i love python“:

五、前后缀判断

调用字符串的startswith与endswith方法可以判断字符串是否以某个子串开关或者结尾,比如以下会分别打印出 ” python startswith py “ 和 ” python endswith on “:

六、查找与替换子串

调用find方法可以判断是否包含某个子串,比如以下代码会输出" python contains th" 和 " python doesn't contain he":

调用replace方法可以对字符串进行替换,比如要把"hello world"中的”hello“替换为”world“,以下代码会输出:”world world“

七、分隔字符串

如果我们要把一句话按空格分隔为一个一个的单词要怎么做呢,这时调用split方法即可,比如以下代码会把”hello world ni hao“转换为["hello","world","ni","hao"]:

八、清除前后字符

如果一个字符串前后有空白字符,我们需要去掉,你可以调用字符串的替换方法来做,但更简单的做法是调用strip方法,比如以下代码就会去掉两端的空白字符输出“hello python”:

九、大小写对换

如果我们需要把字符串中的小写转换为大写,大写转换为小写,那要怎么做呢,很简单,调用下swapcase就可以了,如以下代码会输出“ heLLO pYThON ”:

十、字符分类判断

有很多方法用来判断一个字符串是否属于某个分类,比如 isdigit判断是否是数字,isalpha判断是否是字母,isalnum判断是否是字母数字等,如下代码:

使用正则,

#!/usr/bin/python

# -*- coding: UTF-8 -*-

 

import re

 

phone = "2004-959-559 # 这是一个国外电话号码"

 

# 删除字符串中的 Python注释 

num = re.sub(r'#.*$', "", phone)

print "电话号码是: ", num

 

# 删除非数字(-)的字符串 

num = re.sub(r'\D', "", phone)

print "电话号码是 : ", num

以上实例执行结果如下:

电话号码是:  2004-959-559

电话号码是 :  2004959559