python cookbook内容提炼-第二章 字符串和文本

本文介绍了PythonCookbook中关于字符串和文本处理的精华内容,包括多界定符分割、开头结尾匹配、Shell通配符、正则表达式搜索与替换、Unicode处理、格式化字符串等实用技巧,有助于提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python cookbook内容提炼-第二章 字符串和文本

这篇博客,我们继续cookbook内容提炼,这部分是关于字符串和文本处理的,都是干货,这篇博客比第一篇博客更重要,在实战开发中可以快速提升开发速度。

下面内容中 只有2.9和2.16不怎么用,其他的都是开发中很重要的技巧和知识点,感兴趣的可以好好学习学习。

2.1 使用多个界定符分割字符串

2.2 字符串开头或结尾匹配

2.3 用Shell通配符匹配字符串

2.4 字符串匹配和搜索

2.5 字符串替换

2.7 最短匹配模式

2.8 多行匹配模式

2.9 将Unicode文本标准化

2.10 在正则式中使用Unicode

2.11 删除字符串中不需要的字符

2.12 字符串对齐

2.13 合并拼接字符串

2.14 字符串中插入变量

2.15 以指定列宽格式化字符串

2.16 在字符串中处理html和xml

2.1 使用多个界定符分割字符串

问题:你需要将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的。
就是说,我们现在有一个字符串,想进行分割,但是分隔符不止一个,可能有很多个,这个使用正则表达式去实现的。
这个技巧很实用。
那么来看一下代码:

line = 'asdf fjdk;afed, fjek,asdf, foo'

import re


spstr=re.split(r'[;,\s]\s*',line)
print(spstr)

运行结果:
在这里插入图片描述
可以看到这个方法重点在于匹配模式的设置 ‘[;,\s]\s*’

来解释一下 ‘[;,\s]\s*’

这个这个其中’[;,\s] ; ,\s(也就是空格)都可以作为分割符 \s*则表示任意多个空格。
就是分割符可以是 逗号,分号或者是空格,并且后面紧跟着任意个的空格。

再看一下一些例子,方便大家理解。

line = 'asdf fjdk;afed, fjek,asdf, foo'

import re


spstr=re.split(r'[;,\s]\s*',line)
print(spstr)



print("*"*50)


s="fasojfiaoo dfaojf; dfjiaidfa, dfja da dfiaff;fdasf,dfa;"

spstr=re.split(r'[;,\s]\s*',s)
print(spstr)
print("*"*50)
s="fa;;fas   ;,fa;    fsfda"


spstr=re.split(r'[;,\s]\s*',s)
print(spstr)

在这里插入图片描述

可以看到 ; , 首先作为一个分隔符,如果后面还有空格,也只会进行一次分割,如果两个连续的 ;或者, 则会进行两次分割。

再看一下例子:




s="fa;;fas   ;,fa;    fsfda"

spstr=re.split(r'[;,\s]\s*;*,*',s)
print(spstr)

看一下结果:
在这里插入图片描述

对于这段知识点,我觉得不在于详细去说,而在去根据结果分析代码。

2.2 字符串开头或结尾匹配

这个就是判断字符串是否以另一段字符串为结尾或者开头。

来看一下代码就知晓了:


filename = 'spafsadfsafasm.txt'


print(filename.endswith('.txt'))

print(filename.endswith('.txx'))

print(filename.startswith('spafsa'))
print(filename.startswith('afsa'))

运行结果:
在这里插入图片描述
这个在开发中也是很常用的。

这个也支持多种后缀匹配:

filenames=[ 'Makefile', 'foo.c','bar.py', 'spam.c', 'spam.h' ]

res=[name for name in filenames if name.endswith(('.c', 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值