字符串
1.字符串属于不可变序列,不能对字符串对象进行元素增加、修改、删除等操作。字符串对象提供的 replace() 、 translate() 以及其他类似的方法并不是对原字符串直接修改替换,而是返回一个修改后的结果字符串。
2.Python 字符串驻留机制:对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。长字符串不遵守驻留机制。
格式
常用的格式字符:
格式字符 | 说明 |
---|
%s | 字符串(采用 str() 的显示) |
%r | 字符串(采用 repr() 的显示) |
%c | 单个字符 |
%d | 十进制整数 |
%i | 十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数 |
%e | 指数(基底写为 e) |
%E | 指数(基底写为E) |
%f,%F | 浮点数 |
%g | 指数(e)或浮点数(根据显示长度) |
%G | 指数(E)或浮点数(根据显示长度) |
%% | 字符“%” |
字符串常用方法
方法 | 功能 |
---|
str.find() | 子串再str中第一次出现的位置 |
str.replace() | 用字符串new代替str中的old |
str.split() | 以sep为分隔符,把str分割成一个列表 |
str.join(seq) | 把序列用连接符连接起来 |
str.count() | 统计字符串中有多少个substr |
str.strip() | 去除掉str中两端的空格、字符、字符串 |
str.lstrip() | 去除掉str中左边的空格(返回字符串类型) |
str.rstrip() | 去除掉str中右边的空格(返回字符串类型) |
str.isalpha() | 判断str是否全部为字母 |
str.isdigit() | 判断str是否全部为数字 |
str.isupper() | 判断str是否全是大写字母 |
str.islower() | 判断str是否全是小写字母 |
str.upper() | 将str中全部小写字母转换为大写字母 |
str.lower() | 将str中全部大写字母全部转换为小写字母 |
str1.swapcase() | 将str中的全部大小写字母进行相互转化 |
str1.capitalize() | 将str中的第一个字母变成大写,其他变成小写字母 |
正则表达式
正则表达式使用某种***预定义的模式***去匹配一类具有共同特征的字符串,主要用于处理字符串,可以快速、准确地完成复杂的***查找、替换***等处理要求,在***文本编辑与处理、网页爬虫***之类的场合中有重要应用。
正则表达式语法
元字符 | 功能说明 |
---|
\r | 匹配一个回车符 |
\b | 匹配单词头或单词尾 |
\B | 与\b含义相反 |
\d | 匹配任何数字,相当于[0-9] |
\D | 与\d含义相反,等效于[^0-9] |
\s | 匹配任何空白字符,包括空格、制表符、换页符,与 [ \f\n\r\t\v] 等效 |
\S | 与\s含义相反 |
\w | 匹配任何字母、数字以及下划线,相当于[a-zA-Z0-9_] |
\W | 与\w含义相反\w含义相反,与“[^A-Za-z0-9_]”等效 |
() | 将位于()内的内容作为一个整体来对待 |
{m,n} | {}前的字符或子模式重复至少m次,至多n次 |
[] | 表示范围,匹配位于[]中的任意一个字符 |
[^xyz] | 反向字符集,匹配除x、y、z之外的任何字符 |
[a-z] | 字符范围,匹配指定范围内的任何字符 |
[^a-z] | 反向范围字符,匹配除小写英文字母之外的任何字符 |
re模块主要方法
方法 | 功能说明 |
---|
compile(pattern[, flags]) | 创建模式对象 |
escape(string) | 将字符串中所有特殊正则表达式字符转义 |
findall(pattern, string[, flags]) | 返回包含字符串中所有与给定模式匹配的项的列表 |
finditer(pattern, string, flags=0) | 返回包含所有匹配项的迭代对象,其中每个匹配项都是match对象 |
fullmatch(pattern, string, flags=0) | 尝试把模式作用于整个字符串,返回match对象或None |
match(pattern, string[, flags]) | 从字符串的开始处匹配模式,返回match对象或None |
purge() | 清空正则表达式缓存 |
search(pattern, string[, flags]) | 在整个字符串中寻找模式,返回match对象或None |
split(pattern, string[, maxsplit=0]) | 根据模式匹配项分隔字符串 |
sub(pat, repl, string[, count=0]) | 将字符串中所有与pat匹配的项用repl替换,返回新字符串,repl可以是字符串或返回字符串的可调用对象,作用于每个匹配的match对象 |
subn(pat, repl, string[, count=0]) | 将字符串中所有pat的匹配项用repl替换,返回包含新字符串和替换次数的二元元组;repl可以是字符串或返回字符串的可调用对象,作用于每个匹配的match对象 |