重庆手机网站方案设计,成全视频免费观看在线看大全,网站开发实践意义,中国建筑集团有限公司官网招聘一、Python字符串基本操作
1. 去掉前后的特殊字符#xff08;strip#xff09;
Python的strip操作可以去除字符串前后的空格#xff08;不改变原串#xff09;下例将前后的空格均删掉#x1f447;
str 人工智能
str.strip() # OUT:人工智能rstrip删除右边的空格strip
Python的strip操作可以去除字符串前后的空格不改变原串下例将前后的空格均删掉
str 人工智能
str.strip() # OUT:人工智能rstrip删除右边的空格保留左边的空格:
str.rstrip() # OUT: 人工智能lstrip删除左边的空格保留右边的空格:
str.lstrip() # OUT:人工智能 strip还可以指定任意形式的字符将字符串前后的该字符都删掉
str AAA我爱人工智能AA
str.strip(A) # OUT我爱人工智能2. 替换操作replace
使用replace把所有的 ’ 我 ’ 改成 ‘你’替换全部:
str 我爱人工智能我爱深度学习
str.replace(我,你) # OUT你爱人工智能你爱深度学习使用replace把我替换成None即相当于删除全部的 ‘ 我 ’:
str 我爱人工智能我爱深度学习
str.replace(我,) # OUT:爱人工智能爱深度学习3. 查找操作find操作 find()方法语法 str.find(str, beg0, endlen(string)) str —— 指定检索的字符串 beg —— 开始索引默认为0。 end —— 结束索引默认为字符串的长度。 【如果包含子字符串返回开始的索引值否则返回-1。】 str 我爱人工智能我爱深度学习
str.find(爱) # 返回的是第一个出现‘爱’的索引 OUT : 14. 判断操作 is~~~ isalpha 如果字符串至少有一个字符并且所有字符都是字母或文字则返回 True否则返回 False str a习
str.isalpha() # OUT : True 但是在后面加个空格就是false了str a112
str.isdigit() # OUTFalse5. 分割合并操作
str 我爱 人工智能我爱 深度学习
str.split( ) # OUT:[我爱, 人工智能我爱, 深度学习]上例表示将字符串按照空格为分隔符将字符串切分输出是一个list结构将分割后的每个结果作为list中的一个元素但是原始的str仍未改变仍然是 ‘我爱 人工智能我爱 深度学习’ 而非list要想让原始的str更改为list则需要自行赋值。
str str.split( ) # 现在,str是[我爱, 人工智能我爱, 深度学习]了下面将list中的元素进行合并, 同时指定合并时的分隔符 (join) .join(str) # OUT我爱 人工智能我爱 深度学习如果不需要分割符只需要合并则将指定分隔符发位置置为空即可。【置为None并不是空格】
.join(str) # OUT : 我爱人工智能我爱深度学习二、正则表达式
1. 基本介绍
正则表达式(Regular Expression)是一种文本模式包括普通字符例如a 到 z 之间的字母和特殊字符称为元字符。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。正则表达式通常用于数据预处理时对文本进行筛选获得我们所需要的信息例如只要数字、字母。
2. 正则表达式操作
1基本匹配操作 Python正则表达式 1指定好匹配的模式 —— pattern 2选择相应的方法 —— match, search等 3得到匹配结果 —— group等 re.match # 从开始位置开始匹配如果开头没有则无 re.search: # 搜索整个字符串 re.findall: # 搜索整个字符串返回一个list import re
str 人工智能很简单 。 9abc21567k8
pattern re.compile(r.)
re.findall(pattern, str)上面表格中提到‘.’ 可以匹配除 ‘\n’ 外的字符。因此上例中将每个字符都输出出来list形式。下例展示了可以在[ ]内指定字符进行筛选。
str 人工智能很简单 。 9abc21567k8
pattern re.compile(r[abc])
re.findall(pattern, str) # OUT: [a, b, c]可以发现当需要匹配的字符过多时都塞在[ ]内肯定不是长久之计因此这就体现了正则表达式的妙处。 [abc指定包含字符] [a-zA-Z]来指定所有英文字母的大小写 [^a-zA-Z]不匹配所有的英文字母 str 人工智能很简单 。 9abc21567k8
pattern re.compile(r[a-zA-Z])
re.findall(pattern, str) # OUT : [a, b, c, k]str 人工智能很简单 。 9abc21567k8
pattern re.compile(r[^a-zA-Z])
re.findall(pattern, str)2或方法
或方法将两个规则并起来以’|连接表示只要满足其中之一就可以匹配。
str 人工智能很简单 。 9abc21567k8
pattern re.compile(r[a-zA-Z]|[0-9])
re.findall(pattern, str)
# OUT [9, a, b, c, 2, 1, 5, 6, 7, k, 8]3. 正则常用符号 注\w其实也包括匹配汉字只是通常都采用英文的字符串。
# 例如\d匹配数字等价于p [0-9]
str 人工智能很简单 。 9abc21567k8
pattern re.compile(r\d)
re.findall(pattern, str) # OUT [9, 2, 1, 5, 6, 7, 8]4. 特殊字符 # 0次或多次
str 人工智能很简单 。 9abc21567k8
pattern re.compile(r\d*)
re.findall(pattern, str)
# OUT : [, , , , , , , , , , 9, , , , 21567, , 8, ]# 1次或多次
pattern re.compile(r\d)
re.findall(pattern, str) # OUT : [9, 21567, 8]# 0次或1次
pattern re.compile(r\d?)
re.findall(pattern, str)不仅如此{m}可以精确匹配 m 次
str 人工智能很简单 。 9abc215k856
pattern re.compile(r\d{3})
re.findall(pattern, str) # OUT : [215, 856]{m,n}可以精确匹配最少 m 次 最多n 次
str 人工智能很简单 。 9abc215k856
pattern re.compile(r\d{1,3})
re.findall(pattern, str) # OUT : [9, 215, 856]5. match search
它们的返回不是一个简单的字符串列表而是一MatchObject,可以得到更多的信息。如果匹配不成功它们则返回一个NoneType。所以在对匹配完的结果进行操作之前必需先判断一下是否匹配成功了。 skill在实际任务中通常加if判断如果找到了再继续防止NoneType带来奇妙的问题 match 从字符串的开头开始匹配如果开头位置没有匹配成功就算失败了;而search会跳过开头继续向后寻找是否有匹配的字符串。 input 12人工智能很简单
pattern re.compile(r\d)
match re.match(pattern, input)
match.group() # OUT : 16. 字符串的替换 修改
在目标字符串中规格规则查找匹配的字符串再把它们替换成指定的字符串。你可以指定一个最多替换次数否则将替换所有的匹配到的字符串。 sub ( rule , replace , target [,count] ) subn(rule , replace , target [,count] ) 第一个参数是正则规则第二个参数是指定的用来替换的字符串第三个参数是目标字符串第四个参数是最多替换次数。 sub返回一个被替换的字符串。 subn返回一个元组第一个元素是被替换的字符串第二个元素是一个数字表明产生了多少次替换。 input 123人工智能很简单
pattern re.compile(r\d)
re.sub(pattern,学习 ,input) # OUT 学习学习学习人工智能很简单input 123人工智能很简单
pattern re.compile(r\d)
re.subn(pattern,学习 ,input) # OUT : (学习学习学习人工智能很简单, 3)SUM 上例表明实际上sub和subn几乎一样只是subn多返回了一个替换的次数。
7. 切片split
split切片函数。使用指定的正则规则在目标字符串中查找匹配的字符串用它们作为分界把字符串切片。 split( rule , target [,maxsplit]) 第一个参数是正则规则第二个参数是目标字符串第三个参数是最多切片次数,返回一个被切完的子字符串的列表。 input 自然语言处理123人工智能456深度学习
pattern re.compile(r\d)
re.split(pattern, input) # [自然语言处理, 人工智能, 深度学习]8. (?P…)命名组 (?P…)是命名组其中…里面是给这个组起的名字。 input 自然语言处理123人工智能456深度学习
pattern re.compile(r(?Phh\d)(?Puu\D))
m re.search(pattern, input)
m.group(hh) # OUT : 123str number 863-996-785
pattern re.compile(r(\d\d\d-\d\d\d-\d\d\d))
m re.search(pattern, str)
m.groups() # OUT : (863-996-785,)