0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python判斷字符串是否包含子串

python爬蟲知識(shí)分享 ? 來源:python爬蟲知識(shí)分享 ? 作者:python爬蟲知識(shí)分享 ? 2022-04-08 15:15 ? 次閱讀

1、使用 in 和 not in

innot inPython 中是很常用的關(guān)鍵字,我們將它們歸類為 成員運(yùn)算符

使用這兩個(gè)成員運(yùn)算符,可以讓我們很直觀清晰地判斷一個(gè)對象是否在另一個(gè)對象中,示例如下:

>>> "llo" in "hello, python"
True
>>>
>>> "lol" in "hello, python"
False

2、使用 find 方法

使用 字符串 對象的 find 方法,如果有找到子串,就可以返回指定子串在字符串中的出現(xiàn)位置,如果沒有找到,就返回 -1

>>> "hello, python".find("llo") != -1
True
>>> "hello, python".find("lol") != -1
False
>>

3、使用 index 方法

字符串對象有一個(gè) index 方法,可以返回指定子串在該字符串中第一次出現(xiàn)的索引,如果沒有找到會(huì)拋出異常,因此使用時(shí)需要注意捕獲。

def is_in(full_str, sub_str):
    try:
        full_str.index(sub_str)
        return True
    except ValueError:
        return False

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

4、使用 count 方法

利用和 index 這種曲線救國的思路,同樣我們可以使用 count 的方法來判斷。

只要判斷結(jié)果大于 0 就說明子串存在于字符串中。

def is_in(full_str, sub_str):
    return full_str.count(sub_str) > 0

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

5、通過魔法方法

在第一種方法中,我們使用 in 和 not in 判斷一個(gè)子串是否存在于另一個(gè)字符中,實(shí)際上當(dāng)你使用 in 和 not in 時(shí),Python 解釋器會(huì)先去檢查該對象是否有 __contains__ 魔法方法。

若有就執(zhí)行它,若沒有,Python 就自動(dòng)會(huì)迭代整個(gè)序列,只要找到了需要的一項(xiàng)就返回 True 。

示例如下;

>>> "hello, python".__contains__("llo")
True
>>> "hello, python".__contains__("lol")
False

這個(gè)用法與使用 in 和 not in 沒有區(qū)別,但不排除有人會(huì)特意寫成這樣來增加代碼的理解難度。

6、借助 operator

operator模塊是python中內(nèi)置的操作符函數(shù)接口,它定義了一些算術(shù)和比較內(nèi)置操作的函數(shù)。operator模塊是用c實(shí)現(xiàn)的,所以執(zhí)行速度比 python 代碼快。

在 operator 中有一個(gè)方法 contains 可以很方便地判斷子串是否在字符串中。

>>> import operator
>>>
>>> operator.contains("hello, python", "llo")
True
>>> operator.contains("hello, python", "lol")
False

7、使用正則匹配

說到查找功能,那正則絕對可以說是專業(yè)的工具,多復(fù)雜的查找規(guī)則,都能滿足你。

對于判斷字符串是否存在于另一個(gè)字符串中的這個(gè)需求,使用正則簡直就是大材小用。

import re

def is_in(full_str, sub_str):
    if re.findall(sub_str, full_str):
        return True
    else:
        return False

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    579

    瀏覽量

    20539
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84758
收藏 人收藏

    評論

    相關(guān)推薦

    base64字符串轉(zhuǎn)換為二進(jìn)制文件

    一些編程知識(shí)。以下是將Base64字符串轉(zhuǎn)換為二進(jìn)制文件的一般步驟,以及一個(gè)簡單的Python示例代碼。 步驟: 獲取Base64字符串 :首先,你需要有一個(gè)Base64編碼的字符串。
    的頭像 發(fā)表于 11-10 10:55 ?1235次閱讀

    MATLAB(5)--字符串處理

    :兩個(gè)字符串里的每個(gè)字符依次按ASCII值大小逐個(gè)進(jìn)行比較,比較的結(jié)果是一個(gè)數(shù)值向量,向量中的元素為1或者0。 字符串比較函數(shù)用于判斷字符串
    發(fā)表于 09-06 10:22

    labview字符串數(shù)組轉(zhuǎn)化為數(shù)值數(shù)組

    在LabVIEW中,將字符串數(shù)組轉(zhuǎn)換為數(shù)值數(shù)組是一項(xiàng)常見的任務(wù),尤其是在處理數(shù)據(jù)采集、信號(hào)處理或用戶輸入時(shí)。 1. 理解LabVIEW的數(shù)據(jù)類型 在開始之前,了解LabVIEW中的數(shù)據(jù)類型是非
    的頭像 發(fā)表于 09-04 17:47 ?2435次閱讀

    labview字符串如何轉(zhuǎn)換為16進(jìn)制字符串

    在LabVIEW中,將字符串轉(zhuǎn)換為16進(jìn)制字符串是一個(gè)常見的需求,尤其是在處理數(shù)據(jù)通信和硬件接口時(shí)。LabVIEW提供了多種方法來實(shí)現(xiàn)這一轉(zhuǎn)換,包括使用內(nèi)置函數(shù)、編寫VI(Virtual
    的頭像 發(fā)表于 09-04 15:54 ?2589次閱讀

    labview中如何實(shí)現(xiàn)字符串換行

    1. 字符串換行的基本概念 在LabVIEW中,字符串換行通常指的是在字符串中插入換行符,使得字符串在顯示或輸出時(shí)能夠自動(dòng)換行。這在創(chuàng)建用戶界面或處理文本數(shù)據(jù)時(shí)非常有用。 2.
    的頭像 發(fā)表于 09-04 15:47 ?1779次閱讀

    labview中如何實(shí)現(xiàn)字符串選擇輸出

    在LabVIEW中實(shí)現(xiàn)字符串選擇輸出是一項(xiàng)常見的任務(wù),它涉及到字符串處理、條件判斷和用戶界面設(shè)計(jì)等多個(gè)方面。由于LabVIEW是一種圖形化編程語言,其編程方式與傳統(tǒng)的文本編程語言有所不同,因此實(shí)現(xiàn)
    的頭像 發(fā)表于 09-04 15:44 ?974次閱讀

    labview中常用的字符串函數(shù)有哪些?

    ) : 功能:該函數(shù)用于返回字符串包含字符個(gè)數(shù)。 應(yīng)用場景:常用于需要計(jì)算字符串長度的場景,如文件命名、數(shù)據(jù)處理等。 連接字符串(Str
    的頭像 發(fā)表于 09-04 15:43 ?795次閱讀

    labview字符串的四種表示各有什么特點(diǎn)

    。在LabVIEW中,字符串是一種基本的數(shù)據(jù)類型,用于表示文本信息。字符串在LabVIEW中有多種表示方式,每種方式都有其特定的應(yīng)用場景和特點(diǎn)。以下是對LabVIEW中四種字符串表示方式的分析: 1.
    的頭像 發(fā)表于 09-04 15:40 ?605次閱讀

    銳評Ruby 3.4.0 默認(rèn)啟用字符串字面量凍結(jié)功能

    據(jù)悉,Ruby自2.3版起引入了“凍結(jié)”機(jī)制,通過使用frozen_string_literal: true魔法注釋,可令文件內(nèi)所有字符串字面量默認(rèn)為凍結(jié)狀態(tài),防止開發(fā)過程中無意修改字符串,提高代碼穩(wěn)定性與性能,降低內(nèi)存占用。
    的頭像 發(fā)表于 05-17 15:44 ?395次閱讀

    如何提取串口接收字符串數(shù)組里的某個(gè)字符串?

    前幾天搞了好久串口發(fā)送接收字符串的程序代碼,終于搞出來了。還沒高興多久,新的問題又來了。我使用STM8S105K4的UART2口跟藍(lán)牙模塊通信的,我發(fā)送字符串指令給藍(lán)牙后,藍(lán)牙返回來了十幾
    發(fā)表于 04-22 06:05

    鴻蒙TypeScript學(xué)習(xí)第10天:【String(字符串)】

    String 對象用于處理文本(字符串)。
    的頭像 發(fā)表于 04-08 14:32 ?832次閱讀
    鴻蒙TypeScript學(xué)習(xí)第10天:【String(<b class='flag-5'>字符串</b>)】

    Python中的常見操作

    判斷字符串包含的元素是否相同,無論字符串中元素順序如何,只要包含相同的元素和數(shù)量,就認(rèn)為其是相
    的頭像 發(fā)表于 03-08 10:54 ?350次閱讀

    C語言字符串編譯函數(shù)介紹

    在C語言中,字符串實(shí)際上是使用null字符O'終止的一維字符數(shù)組。因此,一個(gè)以null結(jié)尾的字符串,包含了組成
    的頭像 發(fā)表于 03-07 16:18 ?519次閱讀
    C語言<b class='flag-5'>字符串</b>編譯函數(shù)介紹

    USB字符串描述符里面的序列號(hào)字符串到底是什么東西?

    在設(shè)備描述符里面,有一個(gè)表示序列號(hào)字符串描述符的編號(hào),請問這個(gè)序列號(hào)字符串的描述符是什么東西呢? 廠商字符串和設(shè)備字符串都能理解,而且在電腦的“設(shè)備與打印機(jī)”里面都找到了。但請問這個(gè)
    發(fā)表于 01-24 08:06

    labview二進(jìn)制字符串轉(zhuǎn)數(shù)值

    字符串是一種常見的數(shù)據(jù)類型,它表示了以二進(jìn)制形式存儲(chǔ)的數(shù)據(jù)。當(dāng)我們需要將這些二進(jìn)制字符串轉(zhuǎn)換為數(shù)值時(shí),LabVIEW提供了一些常用的函數(shù)和方法,可以幫助我們完成這個(gè)任務(wù)。 首先,我們需要明確二進(jìn)制字符串的格式。在LabVIEW中
    的頭像 發(fā)表于 01-05 16:20 ?2757次閱讀