自然语言处理——字符串基础操作及应用
目录
一、字符串操作
二、正则表达式
一、字符串操作
.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'
自然语言处理——字符串基础操作及应用相关推荐
- 5.python字符串基础操作
字符串 文章目录 字符串 字符串的赋值 单引号字符串赋值给变量 双引号字符串赋值给变量 三引号字符串赋值给变量(多行) 字符串的截取 截取指定位置的字符 获取指定位置之后的所有字符 截取指定位置之前的 ...
- python字符串字面量有哪四种定义方式_Python进阶16_字符串基础操作
前面介绍了一下比较晦涩而且深入的字符文本的处理方法,接下来几节将带来一些常规的操作.比较容易入手. 字符串处理 字符串字面量 字符字面量的通过使用:以单引号开始和结束,但是如何处理的是字符串内使用单引 ...
- Python字符串基础操作
找到我就是缘分,为技术一起努力! 格式符 # price_width = 10 item_width = width - price_widthheader_format = '%-*s%*s' fo ...
- python基础实例-Python基础之字符串常见操作经典实例详解
本文实例讲述了Python基础之字符串常见操作.分享给大家供大家参考,具体如下: 字符串基本操作 切片 # str[beg:end] # (下标从 0 开始)从下标为beg开始算起,切取到下标为 en ...
- SQL基础操作_5_字符串处理
目录 7.6 处理字符串 7.6.1 生成自增值 7.6.2 遍历字符串里的每个值 7.6.3 处理含引号的字符串 7.6.4 计算某个字符出现的次数 7.6.5 字符串里过滤不需要的字符 7.6.6 ...
- JAVA笔记---------字符串基础与操作
字符串基础: 声明字符串: String a; String a,b; 赋值: String a="";//若没有赋值该值为空值null String b,c; b="& ...
- kotlin基础教程:<3>函数的高级用法和字符串的基础操作
大家都知道函数的功能强大,在Java,有构造函数,静态函数,自定义的函数,自带的函数,反正很多函数,上一期我们讲解了一下Java以及kotlin函数的一个格式,kotlin的函数是由作用域,fun关键 ...
- JavaScript之基础-9 JavaScript String(内置对象、String概述、字符串常用操作、模式匹配)...
一.JavaScript 内置对象 内置对象 - 什么是内置对象? 内置对象就是ECMAScript标准中已经定义好的,由浏览器厂商已经实现的标准对象 - 内置对象中封装了专门的数据和操作数据常用的A ...
- 项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作
无监控,不运维.好了,废话不多说,下面都是干货. 警告:流量党勿入,图片太多!!! 项目实战系列,总架构图 http://www.cnblogs.com/along21/p/8000812.html ...
- 学习笔记Spark(七)—— Spark SQL应用(2)—— Spark DataFrame基础操作
二.Spark DataFrame基础操作 2.1.DataFrame DataFrame是一种不可变的分布式数据集,这种数据集被组织成指定的列,类似于关系数据库中的表. 数据集的每一列都带有名称和类 ...
最新文章
- java使用不存在的字符串_jpa – java.lang.IllegalArgumentException:您试图使用查询字符串中不存在的字符串名称设置参数值...
- Java中的binarySearch方法
- aws cloud map_销毁AWS资源:Cloud-Nuke还是AWS-Nuke?
- mysql80连接不上本地服务器_小白教程:ubuntu服务器安装jupyter notebook, 并能够实现本地远程连接
- JEECG Online Coding 开发流程
- 删除StringBuilder的最后一个字符?
- Linux 密码复杂度
- button组件 untiy_Unity自定义Button组件Transition
- skynet 学习笔记-netpack模块(1)
- 利用python开发微信JS-JDK(基于python3.6)
- 新华字典mysql_数据库优化篇---MySql索引优化详解
- DSP技术在移动通信中的应用
- vs2010开发activex(MFC)控件/ie插件(一)
- 取火柴游戏c语言,取火柴游戏
- 测试职业规划之知识点总结
- 艺赛旗(RPA)国家企业信用信息公示系统验证码破解(二)
- 国家信息中心副主任周民:加快形成网络安全的亮剑精神
- Elsevier 图形规范 Artwork
- 如何在win10的windows Defender中添加信任文件,使其免遭误删除的厄运
- Oracle DBA面试突击题
热门文章
- 在线编辑Word——插入内容控件
- java的八大基本类型
- 5g的八大关键指标_ITU为5G确定了八大能力指标
- 技巧汇总:适用于Mac版Google Chrome的技巧和窍门
- CS5211 eDP转LVDS转换器芯片 CS5211芯片说明书
- elasticsearch2.2之index映射参数的not_analyzed属性
- Eclipse中出现无法找到Maven包Active Maven Profiles (comma separated)
- crm客户管理系统总结
- 【python实战】二:乒乓球比赛对手问题
- Java swing组件介绍