Python 0基础 第五章 字符串及正则表达式

我的课本学习笔记
1.如采用UTF-8编码,汉字占3个字节;采用GBK或GB2312编码,汉字占2个字节。

2.字符串分割
str.split(sep, maxsplit)
str:要分割的字符串
sep:指定分割符,默认为None,即所有的空字符(包括空格,换行‘\t’,制表符‘\t’等)
maxsplit:指定分割次数,如果不指定sep不可指定maxsplit

str1 = "今 天 天 气 不 错 >>> www.goodday.com"
print("原字符串:", str1)
substr1 = str1.split()
substr2 = str1.split(">>>")
substr3 = str1.split(".")
substr4 = str1.split(" ", 4)
print(str(substr1) + '\n' + str(substr2) + '\n' + str(substr3) + '\n' + str(substr4))
substr5 = str1.split('>')
print(substr5)

输出:

原字符串: 今 天 天 气 不 错 >>> www.goodday.com
['今', '天', '天', '气', '不', '错', '>>>', 'www.goodday.com']
['今 天 天 气 不 错 ', ' www.goodday.com']
['今 天 天 气 不 错 >>> www', 'goodday', 'com']
['今', '天', '天', '气', '不 错 >>> www.goodday.com']
['今 天 天 气 不 错 ', '', '', ' www.goodday.com']

3.字符串合并
strnew = string.join(iterable)
strnew:合并后新的字符串
string:字符串类型,用于指定合并时的分隔符
iterable:可迭代对象

list_friend = ['马云', '马化腾', '雷军']
str_new = '@'.join(list_friend)
at = '@'+str_new
print("您@的三位好友是:", at)

输出:

您@的三位好友是: @马云@马化腾@雷军

4.字符串检索 使用find()方法,如果不存在,返回-1;而使用index()检索时,不存在会抛出异常。

5.格式化字符串
(1)使用 % 操作符
%s 字符串(采用str()显示)
%c 单个字符
%f或%F 浮点数
%d 或者 %i 十进制整数

template = '编号: %09d\t公司名称:  %s \t官网:  http://www.%s.com '
context1 = (7, '百度', 'baidu')
context2 = (8, '新浪', 'sina')
print(template % context1)
print(template % context2)

输出:

编号: 000000007 公司名称:  百度  官网:  http://www.baidu.com 
编号: 000000008 公司名称:  新浪  官网:  http://www.sina.com 

(2)使用format()方法
str.format(args)
str:用于指定字符串的显示样式,即模板
args:用于指定要转换的项,如果有多项,用都好进行分隔

template = '编号: {:0>9s}\t公司名称:  {:s} \t官网:  http://www.{:s}.com '
context1 = template.format('7', '百度', 'baidu')
context2 = template.format('8', '新浪', 'sina')
print(context1)
print(context2)

输出:

编号: 000000007 公司名称:  百度  官网:  http://www.baidu.com 
编号: 000000008 公司名称:  新浪  官网:  http://www.sina.com 

6.正则表达式
在这里插入图片描述
(1)用match()方法进行匹配

re.match(pattern, string, [flags])

pattern:表示模式字符串,由要匹配的正则表达式转换而来
string:表示要匹配的字符串
flags:可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小写re.I等
在这里插入图片描述

从字符串开始处进行匹配,如果起始位置匹配成功,则返回match对象,否则返回None。
(2)search()方法

re.search(pattern, string, [flags])

用于在整个字符串中搜索第一个匹配的值,如果普配成功,则返回match对象,否则返回None
(3)findall()方法

re.findall(pattern, string, [flags])

用于在整个字符串中搜索所有符合正则表达式的字符串,并以列表的形式返回。如果匹配成功,则返回包含匹配结构的列表,否则返回空列表。

import re
pattern = r'([1-9]{1,3}(\.[0-9]{1,3}){3})'
str1 = '127.0.0.1  192.168.1.66'
match = re.findall(pattern, str1)
for item in match:
    print(item[0])

输出:

127.0.0.1
192.168.1.66
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值