导图社区 字符串操作和正则表达式
主要描述python一般的字符串操作和正则表达式,是我学习中的一点经验总结。
关于python的 字符串和正则表达式的简单知识总结。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
字符串操作和正则表达式
字符串操作
拼接字符串
str1+str2
计算字符串长度
len(str)
len(str.encode('UTF-8'))
截取字符串
string[5:10:2]
可以用try...except语句捕获异常 try: substring = string[15] except IndexError: print("指定的索引不存在")
分割,合并字符串
分割字符串
string.split(sep,maxsplit)
返回的是分割后的字符串列表
maxsplit是分割的次数
不指定sep,则默认按空格,\t,\n等所有空字符,不指定sep,也不能指定maxsplit
如果sep指定'>',如果字符串里有>>>,会每个分割一次,产生空元素
合并字符串
string.join(iterable)
string1 = '@'.join(list)
检索字符串
string.count(sub,start,end)
返回出现的次数
string.find(sub,start,end)
返回首次出现的索引,不存在则返回-1
如果只是判断是否存在,可以用 in关键字
rfind(),从右边开始找
string.index(sub,start,end)
与find()差不多,但如果不存在会报错
rindex(),从右边开始找
string.startswith(prefix,start,end)
查看字符串是否以指定子字符串开头,返回True或者False
string.endswith(suffix,start,end)
是否以指定子字符串结尾
字母大小写转换
string.lower()
如果没有大写,返回原字符串,如果有,转化为 小写输出新字符串
sting.upper()
去除字符串前后的空格和特殊字符
str.strip(char)
char 默认空格 \n\t\r
str.lstrip()
srt.rstrip()
格式化字符串
%操作符
'% - + 0 m .n 格式化字符(d ,s...)%exp'
str.format()
{index:fill alin sign # width .precision type}
index 对象在参数列表中的索引
fill 空白处填充的字符
align 对齐方式,<,>,=内容右对齐符号放左边,^内容居中
sign + 正数正号负数负号,- 正数不变负数负号,空格正数空格负数负号
type s d c e g b o x f %
'编号:{:0>9s}\t公司名称 :{:s}\t官网:http://www.{:s}.com'.format('7','百度','baidu')
print('{:,.2f}元,{.0%}的汗水').format())
字符串编码转换
str.encode(encoding = "utf-8",errors = "strict")
GBK
ignore忽略非法字符,replace用?代替
bytes.decode(encoding = "GBK",errors = "strict")
正则表达式
正则表达式字符
行定位符
^匹配字符串的位置是行头,$匹配的位置是行尾
元字符
\bmr\w*\b,\b是匹配 以mr开头或者结尾的单词,如果mr在单词中间则不匹配,单词分界符一般是空格,标点符号 ,换行
\w,\s匹配单个空白符,制表符 换行符空格,\d,'.'匹配换行符以外的任意字符
限定符
?0-1
+ 1-n
* 0-n
n, 至少n次
字符类
[aeiou],[0-9,[a-z0-9A-Z]]=\w
[\u4e00-\u9fa5],匹配 汉字
排除选择转义分组字符
排除字符:[^a-zA-Z]
选择字符:|,‘(^\d{15}$)|(^\d{18}$)’
转义字符:\,\.转义为普通的 .
分组:(),‘(\.[0-9]{1,3}){3}’对 小括号内的分组重复3次
re模块正则表达式操作
可以用compile()转为正则表达式对象,再用相关方法操作pattern = re.compile(r'\d+') # 用于匹配至少一个数字 >>> m = pattern.match('one12twothree34four')
匹配字符串
re.match(pattern,string,flags)
从开头开始匹配 ,返回的是match对象,如果 匹配不到返回None
match.start(),match.end(),match.span(),match.group()匹配的内容
flags: A,I不区分大小写,M用^ $包括 每一行,S用 . 匹配所有字符。
re.search(pattern,string,flags)
在整个字符串里搜索,返回的是match对象,如果 匹配不到返回None