Python实验四:文本处理和文件内容操作

#1.需要将一个字符串分割为多个字段,但是分隔符(还有周围的空格)并不是固定的。
#string 对象的 split() 方法只适应于非常简单的字符串分割情形
#它并不允许有多个分隔符或者是分隔符周围不确定的空格。
# 当你需要更加灵活的切割字符串的时候,最好使用 re.split() 方法
import re
line = 'aaa bbb ccc;ddd   eee,fff'
print(line)
r1=re.split(r';',line)#单字符切割
print(r1)
# 两个字符以上切割 【】
r2=re.split(r'[;,]',line)
print(r2)
# 所有空白字符切割
r3 =re.split(r'[;,\s]',line)
print(r3)
# 使用括号捕获分组,默认保留分割符
r4 =re.split(r'([;])',line)
print(r4)
# 不想保留分隔符,以(?:...)的形式指定
r5 = re.split(r'(?:[;])',line)
print(r5)

aaa bbb ccc;ddd   eee,fff
['aaa bbb ccc', 'ddd   eee,fff']
['aaa bbb ccc', 'ddd   eee', 'fff']
['aaa', 'bbb', 'ccc', 'ddd', '', '', 'eee', 'fff']
['aaa bbb ccc', ';', 'ddd   eee,fff']
['aaa bbb ccc', 'ddd   eee,fff']

描述

startswith()函数是Python的字符串函数。startswitch()用于检测字符串是否以指定字符串开头。如果是则返回True,否则返回False.

  • 语法及参数
str.startswith(str2)
名称含义备注
str待检测的字符串
str2检测str2字符串是否是str字符串的开头不可省略的参数
举例
    >>> pro.startswith("Chi")
    True
    >>> pro.startswith("hi")
    False
# 2.需要通过指定的文本模式去检查字符串的开头或者结尾,
#   比如文件名后缀,URL Scheme等等。
#   检查字符串开头或结尾的一个简单方法是使用 str.startswith() 
#   或者是 str.endswith() 方法

filename = 'list.txt'
a1=filename.endswith('.txt')
a2=filename.startswith('list')
a3=filename.startswith('lisp')
print(a1,a2,a3)
True True False

3.在字符串中搜索和匹配指定的文本模式;对于简单的字面模式,直接使用 str.replace() 方法即可;
对于复杂的模式,请使用 re 模块中的 sub() 函数。
为了说明这个,假设想将形式为 11/27/2012 的日期字符串改成 2012-11-27。

re.sub的各个参数的详细解释

re.sub共有五个参数。

其中三个必选参数:pattern, repl, string

两个可选参数:count, flags

https://blog.csdn.net/qq_43088815/article/details/90214217

https://blog.csdn.net/weixin_30454481/article/details/96662513

inputStr = '11/27/2012'
re.sub(r'(\d+)/(\d+)/(\d+)', r'\3-\1-\2', inputStr)

'2012-11-27'
# 4.需要以忽略大小写的方式搜索与替换文本字符串,
#   为了在文本操作时忽略大小写
#   需要在使用 re 模块的时候给这些操作提供 re.IGNORECASE 标志参数
text = 'UPPER PYTHON, lower python, Mixed Python'
def matchcase(word):
    def replace(m):
        text = m.group()
        if text.isupper():
            return word.upper()
        elif text.islower():
              return word.lower()
        elif text[0].isupper():
            return word.capitalize()
        else:
            return word
    return replace
re.sub('python', matchcase('snake'), text, flags=re.IGNORECASE)
'UPPER SNAKE, lower snake, Mixed Snake'
#5.想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。
#  strip() 方法能用于删除开始或结尾的字符。
#   #lstrip() 和 rstrip() 分别从左和从右执行删除操作
text = 'UPPER SNAKE, lower snake, Mixed Snake'
a = re.sub('python', matchcase('snake'), text, flags=re.IGNORECASE)
print(a)


s = 'a hello world ! a';
l =s.lstrip('a ')
print(l)
r = s.rstrip('a')
print(r)
s1 = s.strip('a')
print(s1)
UPPER SNAKE, lower snake, Mixed Snake
hello world ! a
a hello world ! 
 hello world ! 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值