目录

一、字符串操作

二、正则表达式


一、字符串操作

.count() 方法返回特定的子串在字符串中出现的次数。

seq = '12345,1234,123,12,1'
seq1 = '1'
a = seq.count(seq1)
a# 输出结果如下
# 5

.strip()方法可以去除字符串首尾的指定符号。无指定时,默认去除空格符 ' ' 和换行符 '\n'

seq = '      你好!'
seq.strip()# 输出结果如下
# '你好!'

有时候只想要去除字符串开头的某个字符串,但是字符串的末尾有一个同样的字符串并不需要去掉。这时候可以使用 .lstrip() 方法。

seq = '12321'
seq.lstrip('1')# 输出结果如下
# '2321'

同样,可以使用.rstrip() 方法来单独去除末尾的字符。

seq.rstrip('1')# 输出结果如下
# '1232'

需要将字符串用特定的符号拼接起来的字符的时候,可以用 .join() 方法来进行拼接。

seq = ['2021', '04', '25']
seq = '-'.join(seq)  # 用 '-' 拼接
seq# 输出结果如下
# '2021-04-25'

当想要比较两个字符串的大小时,这里需要加载 operator 工具,它 从左到右第一个字符开始,根据设定的规则比较,返回布尔值( True,False )。

import operator
seq1 = '字符串 1 号'
seq2 = '字符串 2 号'
operator.lt(seq1, seq2) # 判断 a < b
# operator.le(seq1, seq2) 判断 a <= b
# operator.eq(seq1, seq2) 判断 a == b
# operator.ne(seq1, seq2) 判断 a != b
# operator.gt(seq1, seq2) 判断 a > b
# operator.ge(seq1, seq2) 判断 a >=b# 输出结果如下
# Ture

使用 .upper() 将文本转化为大写。

seq = 'appLE'
seq = seq.upper()
seq# 输出结果如下
# APPLE

使用 .lower()将文本转化为小写。

seq = 'APPle'
seq = seq.lower()
seq# 输出结果如下
# apple

为了查找到某段字符串当中某个子串的位置信息,有两种方法。一种是.index ,一种是 .find。 两种方法都可实现这个功能,不同的是 index 如果未找到的话,会报错,而 find 未找到的则会返回 -1 值。

seq = '这个是一段字符串'
seq1 = '字符串'
seq.find(seq1)
seq.index(seq1)# 输出结果如下
# 5
# 5

当想要切分字符串时,有两种常用的方法。第一种是直用序列截取的方法。这种方法十分的简单,就是根据顺序来截取序列上你想要的某些片段。

seq = '这是字符串'
seq1 = seq[0:4]
seq1
seq2 = seq[0]
seq2
seq3 = seq[1:4]
seq3# 输出结果如下
# '这是字符'
# '这'
# '是字符'

有的时候,需要把一个字符串按照某个字符切分开处理。split()函数可以完成这个操作,函数返回一个由切分好的字符串组成的列表。

seq = '2021-04-25'
seq = seq.split('-')
seq# 输出结果如下
# ['2021', '04', '25']

需要翻转字符串的时候,那么我们直接用序列操作,直接以上面截取序列的方法,但是按照逆向的来截取实现翻转。

seq = '12345'
seq = seq[::-1]
seq# 输出结果如下
# '54321'

有时需要把字符串中的某段字符串用另一段字符串代替,比如 2021-04-25 中的 - 用 '/' 代替。我们可以用到 .replace(a,b) ,他可以将某字符串中的 a 字符串 替换成 b 字符串。

seq = '2021-04-25'
seq = seq.replace('-', '/')
seq# 输出结果如下
# '2021/04/25'

当遇到需要判断字符串是否以某段字符开头的时候。比如想要判断 ‘abcdefg’ 是否以 'a' 开头。可以用 .startswish() 方法。

seq = 'abcdefg'
seq.startswith('a')# 输出结果如下
# True

同样的方法,我们可以用 .endswith() 来确定字符串是否以某段字符串结尾。

seq = 'abcd'
seq.endswith('d')# 输出结果如下
# True

有时候,当想要检查字符串的构成,像是检查字符串是否由纯数字构成。

seq = 's123'
seq.isdigit()# 输出结果如下
# False

二、正则表达式

       正则表达式是用于处理字符串的强大工具,它由一个特殊的字符序列构成一定的规则,根据这个规则可以检查字符串是否与这个规则的字符串匹配。正则表达式的合理运用,常常可以事半功倍。

提取年份:

import repattern = re.compile(r'[0-9]{4}')
times = ('2018/01/01', '01/01/2019', '01.2017.01')for time in times:match = pattern.search(time)if match:print('年份有:', match.group())# 输出结果如下
# 年份有: 2018
# 年份有: 2019
# 年份有: 2017

.findall():这个方法可以找到符合正则表达式的所有匹配结果。这里我们使用了 \d 规则的正则表达式,这个正则表达式可以替我们识别数字。

import repattern = re.compile(r'\d')
pattern.findall('o1n2m3k4')# 输出结果如下
# ['1', '2', '3', '4']

同样的方法,我们编写一个 \D 正则表达式,这个可以匹配一个非数字字符。

pattern = re.compile('\D')
pattern.findall('1A2B3C4D')# 输出结果如下
# ['A', 'B', 'C', 'D']

.match() 方法与 .search() 方法类似,只匹配一次,并且只从字符串的开头开始匹配。同样,match 结果也是存在 group() 当中。

# 不止是规则,字符也是可以单独作为正则表达式使用。
pattern = re.compile('c')
pattern.match('comcdc').group()# 输出结果如下
# 'c'

自然语言处理——字符串基础操作及应用相关推荐

  1. 5.python字符串基础操作

    字符串 文章目录 字符串 字符串的赋值 单引号字符串赋值给变量 双引号字符串赋值给变量 三引号字符串赋值给变量(多行) 字符串的截取 截取指定位置的字符 获取指定位置之后的所有字符 截取指定位置之前的 ...

  2. python字符串字面量有哪四种定义方式_Python进阶16_字符串基础操作

    前面介绍了一下比较晦涩而且深入的字符文本的处理方法,接下来几节将带来一些常规的操作.比较容易入手. 字符串处理 字符串字面量 字符字面量的通过使用:以单引号开始和结束,但是如何处理的是字符串内使用单引 ...

  3. Python字符串基础操作

    找到我就是缘分,为技术一起努力! 格式符 # price_width = 10 item_width = width - price_widthheader_format = '%-*s%*s' fo ...

  4. python基础实例-Python基础之字符串常见操作经典实例详解

    本文实例讲述了Python基础之字符串常见操作.分享给大家供大家参考,具体如下: 字符串基本操作 切片 # str[beg:end] # (下标从 0 开始)从下标为beg开始算起,切取到下标为 en ...

  5. SQL基础操作_5_字符串处理

    目录 7.6 处理字符串 7.6.1 生成自增值 7.6.2 遍历字符串里的每个值 7.6.3 处理含引号的字符串 7.6.4 计算某个字符出现的次数 7.6.5 字符串里过滤不需要的字符 7.6.6 ...

  6. JAVA笔记---------字符串基础与操作

    字符串基础: 声明字符串: String a; String a,b; 赋值: String a="";//若没有赋值该值为空值null String b,c; b="& ...

  7. kotlin基础教程:<3>函数的高级用法和字符串的基础操作

    大家都知道函数的功能强大,在Java,有构造函数,静态函数,自定义的函数,自带的函数,反正很多函数,上一期我们讲解了一下Java以及kotlin函数的一个格式,kotlin的函数是由作用域,fun关键 ...

  8. JavaScript之基础-9 JavaScript String(内置对象、String概述、字符串常用操作、模式匹配)...

    一.JavaScript 内置对象 内置对象 - 什么是内置对象? 内置对象就是ECMAScript标准中已经定义好的,由浏览器厂商已经实现的标准对象 - 内置对象中封装了专门的数据和操作数据常用的A ...

  9. 项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作

    无监控,不运维.好了,废话不多说,下面都是干货. 警告:流量党勿入,图片太多!!! 项目实战系列,总架构图 http://www.cnblogs.com/along21/p/8000812.html ...

  10. 学习笔记Spark(七)—— Spark SQL应用(2)—— Spark DataFrame基础操作

    二.Spark DataFrame基础操作 2.1.DataFrame DataFrame是一种不可变的分布式数据集,这种数据集被组织成指定的列,类似于关系数据库中的表. 数据集的每一列都带有名称和类 ...

最新文章

  1. java使用不存在的字符串_jpa – java.lang.IllegalArgumentException:您试图使用查询字符串中不存在的字符串名称设置参数值...
  2. Java中的binarySearch方法
  3. aws cloud map_销毁AWS资源:Cloud-Nuke还是AWS-Nuke?
  4. mysql80连接不上本地服务器_小白教程:ubuntu服务器安装jupyter notebook, 并能够实现本地远程连接
  5. JEECG Online Coding 开发流程
  6. 删除StringBuilder的最后一个字符?
  7. Linux 密码复杂度
  8. button组件 untiy_Unity自定义Button组件Transition
  9. skynet 学习笔记-netpack模块(1)
  10. 利用python开发微信JS-JDK(基于python3.6)
  11. 新华字典mysql_数据库优化篇---MySql索引优化详解
  12. DSP技术在移动通信中的应用
  13. vs2010开发activex(MFC)控件/ie插件(一)
  14. 取火柴游戏c语言,取火柴游戏
  15. 测试职业规划之知识点总结
  16. 艺赛旗(RPA)国家企业信用信息公示系统验证码破解(二)
  17. 国家信息中心副主任周民:加快形成网络安全的亮剑精神
  18. Elsevier 图形规范 Artwork
  19. 如何在win10的windows Defender中添加信任文件,使其免遭误删除的厄运
  20. Oracle DBA面试突击题

热门文章

  1. 在线编辑Word——插入内容控件
  2. java的八大基本类型
  3. 5g的八大关键指标_ITU为5G确定了八大能力指标
  4. 技巧汇总:适用于Mac版Google Chrome的技巧和窍门
  5. CS5211 eDP转LVDS转换器芯片 CS5211芯片说明书
  6. elasticsearch2.2之index映射参数的not_analyzed属性
  7. Eclipse中出现无法找到Maven包Active Maven Profiles (comma separated)
  8. crm客户管理系统总结
  9. 【python实战】二:乒乓球比赛对手问题
  10. Java swing组件介绍