python3 字符串
文章目录
一起来回顾基础啊~
字符串内建函数
修改:
-
split(str="", num=string.count(str))
分割字符串,默认以空格分割 -
strip([chars]) 移除字符串头尾指定的字,(默认为空格或换行符)或字符序列
lstrip() 删除开头的空格, rstrip() 删除末尾的空格
string = ‘ 123 2 45 4 ’
string.split() # '123', '2', '45', '4'
string.strip() # '123 2 45 4’
- join(seq)
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
seq中的元素都得是字符串。
以空格连接列表中的字符串元素:
>>>' '.join(['I', 'like', 'apple'])
>>>I like apple
- replace(old, new [, max])
把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
大小写转换:
- upper() 将字符串中小写字母转大写
- lower() 将字符串中大写字母转小写
- swapcase() 大小写互换
- capitalize() 将字符串的第一个字符转换为大写
求取:
- len() 返回字符串长度
查找:
-
count(str, beg= 0,end=len(string))
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 -
find(str, beg=0, end=len(string))
检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
rfind() 从右边开始查找
字符串运算
- 字符串连接 +
- 重复字符串 *
- 成员运算 in / not in
- 索引[], 切片[::]
格式化:
- 字符串格式化使用与 C 中 sprintf 函数一样的语法
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
- 使用format
字符串与正则表达式
正则表达式(Regular Expression)是一种文本模式,包括普通字符和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
- 原始字符串 r/R
为避免ASCII 字符和正则表达式特殊字符间所产生的冲突,使用原始字符串避免转义。
正则表达式语法
普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。
python3 正则表达式
re.match与re.search的区别
re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None,而 re.search 匹配整个字符串,直到找到一个匹配。
-
re.match(pattern, string, flags=0)
判断模式是否匹配成功,匹配成功则返回匹配对象 -
re.search(pattern, string, flags=0)
扫描整个字符串并返回第一个成功的匹配。
import re
line = "Cats are smarter than dogs"
searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)
if searchObj:
print ("searchObj.group() : ", searchObj.group())
print ("searchObj.group(1) : ", searchObj.group(1))
print ("searchObj.group(2) : ", searchObj.group(2))
else:
print ("Nothing found!!")
匹配成功这两种方法都会返回一个匹配的对象,否则返回None。我们可以使用group(num=0) 或 groups() 匹配对象函数来获取匹配表达式。
group() group(0) groups() 获取所有匹配对象组成的元组
group(1) 获取匹配对象的第一项
re.findall, re.finditer
findall在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
finditer和findall类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
注意:match 和 search 是匹配一次 findall 和 finditer 匹配所有。