总结一些字符串常用操作以及正则表达式相关
字符串基本操作
获取字符串长度
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()
打印结果
以上是正则表达式的简单使用,但写好正则表达式是不容易的,接下来会用其做一个爬虫项目。
网友评论