Python笔记(2)

六、字符串以及正则表达式

字符串的常用方法

常用操作(字符串是python中的不可变数据类型)

str.lower():将str字符串全部转成小写字母,结果为一个新的字符串

str.upper():将str字符串全部转成大写字母,结果为一个新的字符串

str.split(sep=None):把str按照指定的分隔符sep进行分隔,结果为列表类型

str.count(sub):结果为sub这个字符串在str中出现的次数

str.find(sub):查询sub这个字符串在str中是否存在,如果不存在结果为-1,如果存在,结果为sub首次出现的索引

str.index(sub):功能与find()相同,区别在于要查询的子串sub不存在时,程序报错

str.strip():去掉字符串左右两侧的空格

str.lstrip():去除字符串左侧的空格

str.rstrip():去除字符串右侧的空格

格式化字符串的三种方式

占位符:

%s:字符串格式化;%d:十进制整数格式;%f:浮点数格式

name='张三'
age=18
score=98.5
print('姓名:%s,年龄:%d,成绩:%f'%(name,age,score))

f-string:

python3.6引入的格式化字符串的方式,以{}标明被替换的字符

name='张三'
age=18
score=98.5
print(f'姓名:{name},年龄:{age},成绩:{score}')

str.format()方法:

模板字符串.format(逗号分隔的参数)

name='张三'
age=18
score=98.5
print('姓名:{0},年龄{1},成绩{2}'.format(name,age,score))

字符串的编码和解码:

字符串的编码:将str类型转换成bytes类型,需要用到字符串的encode()方法,语法格式为:

str.encode(encoding='utf-8',errors='strict/ignore/replace')

s='伟大的中国梦'
#编码str->bytes
sencode=s.encode(errors='replace')
print(sencode)

字符串的解码:将bytes类型转换成str类型,需用到bytes类型的decode()方法,语法格式为:

bytes.decode(encoding='utf-8',errors='strict/ignore/replace')

s='伟大的中国梦'
#编码str->bytes
sencode=s.encode(errors='replace')
print(sencode)

#解码过程
print(bytes.decode(sencode,'utf-8'))

字符串的拼接操作

字符串拼接的方式有:

1.使用str.join()方法进行拼接字符串

s1='hello'
s2='world'
print(''.join([s1,s2]))#使用空字符串进行拼接
print('*'.join(['hello','world','python','java']))#使用*拼接

2.直接拼接

#直接拼接
print('hello''world')

3.使用格式化字符串进行拼接

s1='hello'
s2='world'
print('%s%s'%(s1,s2))
print(f'{s1}{s2}')
print('{0}{1}'.format(s1,s2))

正则表达式

正则表达式,通常缩写为regex或regexp,是一种强大的文本匹配和处理工具。在python中,re模块提供了对正则表达式的支持,可以使用这个模块执行各种字符串的操作,如搜索、替换、匹配等。

以下是一些基本的正则表达式概念和用法的简要解释:

1.普通字符:正则表达式可以包含普通字符,他们会直接匹配自身。例如,正则表达式‘abc’会匹配字符串中的‘abc’。

2.转义字符:使用反斜杠‘\'可以取消元字符的特殊含义,使其匹配字面值。例如’\.'匹配实际的句点字符。

3.预定义字符集:一些预定义的字符集有特殊的表示,例如:

  • \d:匹配任何数字。
  • \D:匹配任何非数字字符。
  • \w:匹配任何字母数字字符。
  • \W:匹配任何非字母数字字符。
  • \s:匹配任何空白字符。
  • \S:匹配任何非空白字符。

在python中使用re模块,需要导入模块并使用其函数。以下是一个简单示例:

import re

# 定义正则表达式
pattern = re.compile(r'\d+')

# 在字符串中搜索匹配
result = pattern.search("There are 123 apples.")
if result:
    print("Match found:", result.group())
else:
    print("No match")

# 替换字符串中的匹配
new_string = pattern.sub("X", "There are 123 apples.")
print("After replacement:", new_string)

re模块的使用

re.match(pattern,string,flags=0):用于从字符串的开始位置进行匹配,如果起始位置匹配成功,结果为Match对象,否则结果为None。

import re
pattern='\d\.\d+'#+限定符,\d:0-9的数字出现一次或多次
s='I study Python 3.9 every day'#待匹配字符
match=re.match(pattern,s,re.I)
print(match)

re.search(pattern,string,flags=0):用于在整个字符串中搜索第一个匹配的值,如果匹配成功,结果为Match对象,否则结果为None。

import re
pattern='\d\.\d+'#+限定符,\d:0-9的数字出现一次或多次
s='I study Python 3.9 every day Python2.7 I love you'#待匹配字符
match=re.search(pattern,s)
print(match)

re.findall(pattern,string,flags=0):用于在整个字符串搜索所有符合正则表达式的值,结果为一个列表类型。

import re
pattern='\d\.\d+'#+限定符,\d:0-9的数字出现一次或多次
s='I study Python 3.9 every day Python2.7 I love you'#待匹配字符
match=re.findall(pattern,s)
print(match)

re.sub(pattern,string,flags=0):用于实现对字符串由指定字串的替换。

import  re
pattern='黑客|破解|反爬'
s='我想学习Python,想破解一些VIP视频,Python可以实现无底线反爬吗?'
new_s=re.sub(pattern,'xxx',s)
print(new_s)

re.split(pattern,string,flags=0):字符串中的split()方法功能相同,都是分割字符串。

  • 29
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值