python 正则表达式判断字符串_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()打印结果

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值