字符串对象的操作方法:序列操作方法(内置函数或表达式,如lenth(...))和类型特定方法(对象方法调用,如s.find(...))。
说明:模式(pattern)匹配是指正则表达式,re模块。而文本串分隔符就是简单的字符串。
字符串分割:
str.split() python内置函数,返回值为列表,只能传入单一的文本串分隔符,如str.split(','),如果不传参,将默认使用空白字符:换行符、空格、制表符。
re.split(pattern,str) 需要导入re模块,返回值为列表。
另str.splitlines():
str.splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数为 False,不包含换行符,如果为 True,则保留换行符。
#!/usr/bin/python
str1 = 'ab c\n\nde fg\rkl\r\n'
print str1.splitlines();
str2 = 'ab c\n\nde fg\rkl\r\n'
print str2.splitlines(True)
以上实例输出结果如下:
['ab c', '', 'de fg', 'kl']
['ab c\n', '\n', 'de fg\r', 'kl\r\n']
字符串搜索:
re.match(pattern,str) 返回的是Match对象,通过obj.group()打印输出。从str的开头匹配,若要完全匹配,pattern要以$结尾。
re.search(pattern,str) 返回的是Match对象,通过obj.group()打印输出。从str的任意位置匹配。注意,如果string中存在多个pattern子串,只返回第一个。
re.findall(pattern,str) 返回值为列表, 匹配str的所有。
re.finditer(pattern, string[, flags]) 返回string中所有与pattern相匹配的全部字串,返回形式为Match对象的迭代器。
以上获取匹配结果需要调用Match对象的group()、groups或group(index)方法,返回值为元祖!
字符串替换:
re.sub(pattern,'repacement',str) 返回值为替换后的字符串
str.replace(‘a ’,'All',5) 返回替换后的字符串。3个参数,将str中的a空格(谨慎填写)替换为All,一共替换5处。5可以省略,默认替换所有。
以下为python内置函数:
len(str) 计算字符串包含字符的个数
split() 上面已经介绍过了
', '.join(list) 将列表list中的内容通过逗号和空格粘合在一起。
以下两个方法,一般用于判断文件以什么开头或结尾:
str.startswith('All') str是否以All开头 (注意:多个匹配时参数使用元祖。)
str.endswith('That\'s all') str是否以That's all结尾 (注意:多个匹配时参数使用元祖。)
str.find('the') 返回str中第一次出现the的位置偏移量,即返回整数值
str.rfind('the') 返回str中最后一次出现the的位置偏移量,即返回整数值
str.count('the') 返回整数值,the在str中一共出现了多少次
str.isalnum() 返回布尔值,str中的所有字符都是字母或数字吗?
关键字end使用(python3可以使用):
print(i, end='') #可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符
print(i, end=',')
python2去掉换行方法,末尾加个逗号:print(i),
关键字sep使用:
>>> a=10;b=388;c=98
>>> print(a,b,c,sep='@')
10@388@98