字符串处理相关API

字符串是7种序列类型中的一种。

除了序列的操作函数,比如len()来求字符串长度之外,Python还为字符串提供丰富到可以写个编辑器的API.

查找类API

首先,下面的查找API都是为了查找位置,或者查一共有几次这样的操作。

如果只是想判断一个字符串是不是另一个字符串的子串的话,使用序列的in运算符就可以了。

例:

str1 = "hahahahaha,heiheihei"

if 'haha' in str1:
    print('haha is a substring of '+str1)
else:
    print('haha is NOT a substring of '+str1)

数数有多少个匹配的字符串 - count函数

原型:str.count(sub[, start[, end]])

* sub:要查找的子字符串

* start:起始位置

* end:结束位置

字符串的count函数可以数出来有多少次匹配,我们看个例子,有5个ha和3个hei

str1 = "hahahahaha,heiheihei"

print(str1.count('ha'))
print(str1.count('haha'))

输出为5和2.

haha只能匹配两次。

再加上扩展参数:

print(str1.count('ha',1))
print(str1.count('ha',0,5))

不抛异常的查找 find和rfind

find函数的行为是,如果能找到,则返回在序列中的坐标,如果找不到,则返回-1. rfind是从右向左查找。我们来看例子:

print(str1.find('haha'))
print(str1.rfind('haha'))

输出值为0和6.

找不到的例子:

print(str1.find('hoho'))
print(str1.rfind('hi'))

输出值都是-1.

完整形式:

* str.find(sub[, start[, end]])

* str.rfind(sub[, start[, end]])

会抛异常的查找:index和rindex

index和rindex的功能与find和rfind基本上一致,除了在找不到时会抛出ValueError异常而不是返回-1.

例:

>>> str1 = "hehe"
>>> str1.index('ha')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

所以我们需要加try…except语句来处理之:

try:
    str1.index('hoho')
except ValueError:
    print('hoho cannot be found in '+str1)

从头查找和从尾查找 startswith, endswith

有时候,我们希望做从头匹配或者匹配尾部。这时候就要用到startswith函数和endswith函数。例:

print(str1.startswith('ha'))
print(str1.endswith('hei'))

这两个返回值均为True.

如果需要更复杂的匹配,还是需要正则表达式。与Java等语言不同,Python中的正则表达式有专门的模块,字符串的API不负责这个事情。

小结

  • 判断字符串是不是在别一个串中能找到:in
  • 判断是否左匹配:startswith
  • 判断是否右匹配:endswith
  • 数数能匹配多少次:count
  • 不抛异常的求匹配位置:find,rfind
  • 会抛异常的求匹配位置:index,rindex

Python API快餐教程(1) - 字符串查找API的更多相关文章

  1. Python学习入门教程,字符串函数扩充详解

    因有用户反映,在基础文章对字符串函数的讲解太过少,故写一篇文章详细讲解一下常用字符串函数.本文章是对:程序员带你十天快速入门Python,玩转电脑软件开发(三)中字符串函数的详解与扩充. 如果您想学习 ...

  2. 【实测】Python 和 C++ 下字符串查找的速度对比

    完整格式链接:https://blog.imakiseki.cf/2022/03/07/techdev/python-cpp-string-find-perf-test/ 背景 最近在备战一场算法竞赛 ...

  3. JAVASE02-Unit01: API文档 、 字符串基本操作

    API文档 . 字符串基本操作 文档注释 package day01; /** * 文档注释只能定义在三个地方: * 类,方法,常量 * * 文档注释是功能注释,用来说明功能作用 * 在类上使用的目的 ...

  4. [Python][flask][flask-login]关于flask-login中各种API使用实例

    本篇博文跟上一篇[Python][flask][flask-wtf]关于flask-wtf中API使用实例教程有莫大的关系. 简介:Flask-Login 为 Flask 提供了用户会话管理.它处理了 ...

  5. python 全栈开发,Day95(RESTful API介绍,基于Django实现RESTful API,DRF 序列化)

    昨日内容回顾 1. rest framework serializer(序列化)的简单使用 QuerySet([ obj, obj, obj]) --> JSON格式数据 0. 安装和导入: p ...

  6. C# 窗体常用API函数 应用程序窗体查找

    常用的处理窗体的API函数如下(注意:API函数必须放在窗体中...): 使用C#语言,要引用DllImport,必须要添加using System.Runtime.InteropServices命名 ...

  7. C中级 MariaDB Connector/C API 编程教程

    引言 - 环境搭建 首先开始环境搭建. 主要在Window 10 + Visual Studio 2015 上构建使用 mariadb connector/c api 进行数据操作开发. 为什么选择在 ...

  8. Python 极简教程(八)字符串 str

    由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...

  9. Azure Application Insights REST API使用教程

    本文是Azure Application Insights REST API的简单介绍,并会包含一个通过Python消费API的示例/小工具. 新加入的team中的一项工作是制作日常的运维报表,制作方 ...

随机推荐

  1. PROC怎么遇到错误全局rollback---SQLServer 异常的处理

    ALTER PROCEDURE [dbo].[PROC_SMSACTIVE_UPDATE] AS BEGIN SET XACT_ABORT ON

  2. Java实现邮箱激活验证

    最近从项目分离出来的注册邮箱激活功能,整理一下,方便下次使用 RegisterValidateService.java [java] view plaincopyprint?   package co ...

  3. Jsp基础语法(由简入杂)

    JSP基础语法 一,JSP简介 Jsp是一个简化的Servlet设计,是在服务器端执行,他实现了再Java中使用HTML标签. Jsp是一种动态网页技术标准也是JAVAEE的标准 二,常见动态网站开发 ...

  4. asp.net Core MVC + webpack 笔记

    webpack 是一个打包工具,用在asp.net Core MVC 会觉得有必要吗? MVC 本身就有bundler~ 如果用过webpack就会知道,打包出来的效果结果就是不一样,MVC的打包就是 ...

  5. Dalvik VM (DVM) 与Java VM (JVM) 的区别?

    Dalvik虚拟机存在于Android系统,JVM是java虚拟机,两者都是虚拟机,本文就对两者进行比较,讲述它们的不同. Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的 ...

  6. JS-Object(3) 继承(prototype方式, 类方式); javascript6的知识(部分)

    原型方式的继承 创建child object classes(constructors) , 子类如何从父类中继承特性. 原型链继承prototypal inheritance (ruby中的继承也是 ...

  7. RabbitMq windows 安装

    参考官方网址: http://www.rabbitmq.com/install-windows-manual.html http://www.rabbitmq.com/install-windows. ...

  8. android之视频播放系统VideoView和自定义VideoView控件的应用

    Android播放视频,包含系统自带VideoView控件,和自定义VideoView控件,可全屏播放,案例包含了本地视频和网络视频. 1:自定义VideoView控件 2:布局代码 3:Activi ...

  9. python-day54--前端之js-DOM对象

    一.DOM对象 1.什么是HTML  DOM HTML  Document Object Model(文档对象模型---标签) 2.功能:定义了访问(查找)和操作HTML文档的标准方法 3.HTML ...

  10. HDU-4848 Wow! Such Conquering! (回溯+剪枝)

    Problem Description There are n Doge Planets in the Doge Space. The conqueror of Doge Space is Super ...