一、前言
二、正则表达式与Python中的实现
1.字符串构造
2. 字符串截取
3. 字符串格式化输出
4.字符转义符
5. 字符串常用函数
在Python中有很多内置函数可以对字符串进行操作。如len()、ord()、chr()、max()、min()、bin()、oct()、hex()等。
函数与方法之比较
在Python中,函数(function)和方法(method)都是可调用的对象,但它们之间有一些区别:
def greet(name):
return f"Hello, {name}!"
print(greet("Alice"))
- 方法(Method)
- 方法是与特定对象相关联的函数。它是在类定义中定义的函数,它可以访问对象的数据。
- 方法需要通过对象来调用,并且在方法内部可以使用
self关键字来访问对象的属性和其他方法。 - 在Python中,方法是通过将函数绑定到类的属性来创建的,并且可以通过类的实例来调用。
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
return f"{self.name} says Woof!"
my_dog = Dog("Buddy")
print(my_dog.bark())
函数是的代码块,而方法是与类或对象相关联的函数。 方法依赖于类和对象的概念,而函数则是更一般的概念,不一定与特定的类或对象相关联。
6. 字符串常用方法
由于字符串属于不可变序列类型,常用方法中涉及到返回字符串的都是新字符串,原有字符串对象不变。
1. 对齐方式
Python提供了三种方法来对字符串进行对齐:center(), ljust() 和 rjust()。
2. 大小写转换
- 常用于解决不区分大小写的问题:
lower() 将字符串中的大写字母转换为小写字母,其他字符不变,并返回新字符串。upper() 将字符串中的小写字母转换为大写字母,其他字符不变,并返回新字符串。
- 进阶
capitalize() 将字符串的首字母转换为大写,其余字母转为小写,返回新字符串。title() 将每个单词的首字母转为大写,其他字母转为小写,返回新字符串。swapcase() 将字符串中的大小写字母互换,返回新字符串。
3. find()和rfind()
格式
- str.find(sub[, start[, end]])
- str.rfind(sub[, start[, end]])
参数说明
- sub: 要查找的子串
- start: 查找的开始位置索引,默认为0
- end: 查找的结束位置索引(不包含该位置),默认为字符串长度
功能
- 在字符串中查找子串sub首次出现的位置索引
- find()从左往右查找,rfind()从右往左查找
- 如果找到子串,返回其首次出现位置的索引
- 如果没有找到,返回-1
示例
s = 'Heart is living in tomorrow'
print(s.find('Heart'))
print(s.find('is'))
print(s.find('heart'))
print(s.find('i'))
print(s.find('i', 7))
print(s.find('i', 11))
print(s.find('i', 13))
print(s.find('i', 17))
print(s.rfind('i'))
4. index()和rindex()
index()和rindex()方法与find()和rfind()类似,不同之处在于如果没有找到子串,会抛出ValueError异常,而不是返回-1。一般使用find()更加安全和方便。
5. count()
格式
- str.count(sub[, start[, end]])
参数说明
- sub: 要统计的子串
- start: 统计的开始位置索引,默认为0
- end: 统计的结束位置索引(不包含该位置),默认为字符串长度
功能
示例
s = 'Hello, hello, HELLO'
print(s.count('hello'))
print(s.count('Hello'))
print(s.count('ll', 4))
print(s.count('ll'))
6. replace()
格式
- str.replace(old, new[, count])
参数说明
- old: 将要被替换的子串
- new: 用于替换的新子串
- count: 替换的最大次数,默认为替换所有的匹配项
功能
- 将字符串中的old子串替换为new子串,并返回新的字符串
- 替换次数最多为count指定的值,默认替换全部
示例
s = 'Heart is living in tomorrow'
print(s.replace('i', 'I'))
print(s)
s1 = '中国北京,北京地铁,地铁沿线,沿线城市'
print(s1.replace('北京', 'Beijing'))
print(s1.replace('北上', 'Beijing'))
print(s1.replace('北京', 'Beijing', 1))