python学习笔记|字符串与正则表达式

总结一些字符串常用操作以及正则表达式相关

字符串基本操作

获取字符串长度

len(text)

字符串分割

word = text.split(" ")
len(word) # 单词个数

获取子字符串

subText = text[3:10]

字符串重复(*)

text2 = "abc"*5

字符串连接(+)

text3 = text + text2

判断字符串是否存在(in/not in)

if 'a' in text:
if 'a' not in text:

字符串比较

函数 结果
text.isalpha() 判断是否仅包含ASCII字母
text.isalnum() 判断是否仅包含ASCII字母和数字
text.isdigit() 判断是否仅包含数字
text.isdicimal() 判断是否仅包含十进制字符
text.islower() 判断是否仅包含小写字母
text.isupper() 判断是否仅包含大写字母
text.isnumeric() 判断是否仅包含数字字符
text.startwith(startword) 判断是否以startword开头
text.endwith(endword) 判断是否仅包含endword结尾

字符串转换

函数 结果
text.capitalize() 首字母大写
text.title() 每个单词首字母均为大写
text.lower() 均为小写
text.upper() 均为大写
text.swapcase() 小写转大写或大写转小写
text.casefold() 大写转小写

注:casefold() lower() 方法效果相同,均为将大写转为小写,但lower() 只对ASCII编码有效,casefold()对其他语言(非汉语或英文)有效

字符串操作

函数 结果
text.count(subText) subText出现次数
text.replace(old,new) 替换
text.find(subText) 首次出现索引
text.rfind(subText) 最后出现索引
text.join("/") 连接
text.splitlines() 用行分割
text.lstrip(subText) 从左侧删除subText
text.rstrip(subText) 从右侧删除subText

注:text.lstrip([])与text.rstrip([])参数可以是数组,若字符串存在,则执行删除操作,若字符串不存在,则删除前(后)空格

例:获取首字母是大写的单词

[word for word in text.split(" ") if word.istitle()]

获取长度大于5的单词

 [word for word in text.split(" ") if len(word)>5]

正则表达式

正则表达式是语言匹配文本模式的强大工具,由模块re支持,使用时需要导入模块。

通用规则

符号 结果
字符串 匹配字符串
. 匹配单个字符
\w 匹配任意单词字符
\W 匹配任意非单词字符
\s 匹配单个空格字符
\S 匹配单个非空白字符
\d 匹配单个数字
^ 匹配字符串开头
$ 匹配字符串末尾
+ 匹配一个或多个模式
* 匹配零个或多个模式
? 匹配零个或一个模式

搜索

search()查找,其中pattern为匹配规则,text为想要执行搜索的字符串

matchset = re.search(pattern,text)

findall()查找特定模式的所有匹配项

matchset = re.findall(pattern,text)

例:

matchset = re.search(r'..de','dsdasdde') # sdde
matchset = re.search(r'\w\w', '%%ds')  # ds
matchset = re.search(r'^de', 'debxd')  # de
matchset = re.search(r'de+f', 'dsdasddedsdeef')  # deef
matchset = re.search(r'dk*f', 'dsdasddedsdesdf') # df

注:r在模式开始时使用,用于处理原始字符串。使用matchset.group()打印结果

以上是正则表达式的简单使用,但写好正则表达式是不容易的,接下来会用其做一个爬虫项目。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python中的正则表达式(re) import rere.match #从开始位置开始匹配,如果开头没有则无re...
    BigJeffWang阅读 7,230评论 0 99
  • 一、字符串在C#中,字符串是一系列不可修改的Unicode字符,创建字符串后,就不能修改它。要创建字符串,最常用的...
    CarlDonitz阅读 1,321评论 0 2
  • ES6学习笔记-字符串与正则表达式 JS字符串编码 在ES6之前,JS的字符串以16位字符编码(UCS-2)为基础...
    小线亮亮阅读 663评论 0 0
  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 2,198评论 0 9
  • 一段感情 难道注定是付出最多的那个人受伤么 叶思浩 给我不起一个家 就不要轻易说爱我 因为我会当真 如果不爱我...
    b724b55fd11a阅读 219评论 1 1