欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 去除字符串中指定字符串

 更新時(shí)間:2020年03月05日 15:33:13   作者:沙振宇  
這篇文章主要介紹了Python 去除字符串中指定字符串,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1、背景

最近的項(xiàng)目中,再次踩到Python字符串處理的坑,決定把此次解決方案記錄一下,以勿踩坑。

2、遇到坑

原本字符串:大坪英利國(guó)際8號(hào)樓88-88號(hào)重慶漢喬科技有限公司大坪英利國(guó)際8號(hào)樓
去除最左邊的字符串:大坪英利國(guó)際8號(hào)樓
預(yù)期結(jié)果:88-88號(hào)重慶漢喬科技有限公司大坪英利國(guó)際8號(hào)樓

自然而然,第一個(gè)想到的就是lstrip()函數(shù)。

Python中l(wèi)strip() 方法用于截掉字符串左邊的空格或指定字符。
但實(shí)際上結(jié)果:

lstrip: -88號(hào)重慶漢喬科技有限公司大坪英利國(guó)際8號(hào)樓

3、找到 lstrip() 坑的真相

函數(shù)原型:

def lstrip(self, chars=None): # real signature unknown; restored from __doc__
  """
  S.lstrip([chars]) -> str
  
  Return a copy of the string S with leading whitespace removed.
  If chars is given and not None, remove characters in chars instead.
  """
  return ""

看來(lái) lstrip 方法是 比對(duì)字符 并去除,而不是簡(jiǎn)單的去除最左邊字符串。
那好,再驗(yàn)證一下:

"重慶重慶師范大學(xué)".lstrip("重慶")

結(jié)果:

師范大學(xué)

那我想簡(jiǎn)單的去除字符串中的首個(gè)指定字符串,最好不用 lstrip() 了。
于是又想到了split 方法 和 replace 方法……

4、解決方案

4.1、方法1 split

函數(shù)原型:

def split(self, instring, maxsplit=_MAX_INT, includeSeparators=False):
  """
  Generator method to split a string using the given expression as a separator.
  May be called with optional C{maxsplit} argument, to limit the number of splits;
  and the optional C{includeSeparators} argument (default=C{False}), if the separating
  matching text should be included in the split results.
  
  Example::    
    punc = oneOf(list(".,;:/-!?"))
    print(list(punc.split("This, this?, this sentence, is badly punctuated!")))
  prints::
    ['This', ' this', '', ' this sentence', ' is badly punctuated', '']
  """
  splits = 0
  last = 0
  for t,s,e in self.scanString(instring, maxMatches=maxsplit):
    yield instring[last:s]
    if includeSeparators:
      yield t[0]
    last = e
  yield instring[last:]

4.2、方法2 replace

函數(shù)原型:

def replace(self, old, new, count=None):
  """
  For each element in `self`, return a copy of the string with all
  occurrences of substring `old` replaced by `new`.

  See also
  --------
  char.replace

  """
  return asarray(replace(self, old, new, count))

5、案例

5.1、源代碼

# -*- coding: utf-8 -*-
"""
Author: ZhenYuSha
CreateTime: 2020-2-26
Info: 去除字符串中 首個(gè)指定字符串
"""


def run(source, key):
  tmp_ls = source.lstrip(key)
  tmp_re = source.replace(key, "", 1)
  tmp_sp = source.split(key, 1)[1]
  return tmp_ls, tmp_re, tmp_sp


if __name__ == '__main__':
  tmp_1, tmp_2, tmp_3 = run("大坪英利國(guó)際8號(hào)樓88-88號(hào)重慶漢喬科技有限公司大坪英利國(guó)際8號(hào)樓", "大坪英利國(guó)際8號(hào)樓")
  print("test_1 lstrip:", tmp_1)
  print("test_1 replace:", tmp_2)
  print("test_1 split:", tmp_3)

  tmp_1, tmp_2, tmp_3 = run("重慶重慶師范大學(xué)", "重慶")
  print("test_2 lstrip:", tmp_1)
  print("test_2 replace:", tmp_2)
  print("test_2 split:", tmp_3)

5.2、效果

6、延伸

split 和 replace 可以解決字符串首個(gè)指定字符串去除問(wèn)題, 但去除字符串這個(gè)問(wèn)題不僅僅是去除就完了,還要去判斷是否符合我們的要求。

6.1、看字符串開(kāi)頭是否是指定字符串

如果需要以指定字符串開(kāi)頭,要用 startswith 函數(shù)來(lái)判斷。

6.2、看字符串中是否存在指定字符串

如果不存在指定字符串,直接用 split 和 replace 會(huì)直接崩潰的,那就需要 find 函數(shù)來(lái)查看了。

到此這篇關(guān)于Python 去除字符串中指定字符串的文章就介紹到這了,更多相關(guān)Python 去除字符串 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)敏感詞過(guò)濾的4種方法

    Python實(shí)現(xiàn)敏感詞過(guò)濾的4種方法

    這篇文章主要介紹了Python實(shí)現(xiàn)敏感詞過(guò)濾的4種方法,幫助大家處理不和諧的言論,感興趣的朋友可以了解下
    2020-09-09
  • python使用numpy按一定格式讀取bin文件的實(shí)現(xiàn)

    python使用numpy按一定格式讀取bin文件的實(shí)現(xiàn)

    這篇文章主要介紹了python使用numpy按一定格式讀取bin文件的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 使用Python的datetime庫(kù)處理時(shí)間(RPA流程)

    使用Python的datetime庫(kù)處理時(shí)間(RPA流程)

    datetime 是 Python 處理日期和時(shí)間的標(biāo)準(zhǔn)庫(kù)。這篇文章主要介紹了使用Python的datetime庫(kù)處理時(shí)間(RPA流程),需要的朋友可以參考下
    2019-11-11
  • PyQt 5 設(shè)置Logo圖標(biāo)和Title標(biāo)題的操作

    PyQt 5 設(shè)置Logo圖標(biāo)和Title標(biāo)題的操作

    這篇文章主要介紹了PyQt 5 設(shè)置Logo圖標(biāo)和Title標(biāo)題的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Python實(shí)現(xiàn)單項(xiàng)鏈表的最全教程

    Python實(shí)現(xiàn)單項(xiàng)鏈表的最全教程

    單向鏈表也叫單鏈表,是鏈表中最簡(jiǎn)單的一種形式,它的每個(gè)節(jié)點(diǎn)包含兩個(gè)域,一個(gè)信息域(元素域)和一個(gè)鏈接域,這個(gè)鏈接指向鏈表中的下一個(gè)節(jié)點(diǎn),而最后一個(gè)節(jié)點(diǎn)的鏈接域則指向一個(gè)空值,這篇文章主要介紹了Python實(shí)現(xiàn)單項(xiàng)鏈表,需要的朋友可以參考下
    2023-01-01
  • python模擬斗地主發(fā)牌

    python模擬斗地主發(fā)牌

    這篇文章主要為大家詳細(xì)介紹了python模擬斗地主發(fā)牌,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • 關(guān)于Python如何調(diào)用攝像頭

    關(guān)于Python如何調(diào)用攝像頭

    這篇文章主要介紹了關(guān)于Python如何調(diào)用攝像頭,文中提供了部分實(shí)現(xiàn)代碼和解決思路,需要的朋友可以參考下
    2023-04-04
  • 如何徹底解決python?NameError:name?'__file__'?is?not?defined

    如何徹底解決python?NameError:name?'__file__'?is?not?

    這篇文章主要給大家介紹了關(guān)于如何徹底解決python?NameError:name?'__file__'?is?not?defined的相關(guān)資料,文中通過(guò)圖文將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Python利用LyScript插件實(shí)現(xiàn)批量打開(kāi)關(guān)閉進(jìn)程

    Python利用LyScript插件實(shí)現(xiàn)批量打開(kāi)關(guān)閉進(jìn)程

    LyScript是一款x64dbg主動(dòng)化操控插件,經(jīng)過(guò)Python操控X64dbg,完成了遠(yuǎn)程動(dòng)態(tài)調(diào)試,解決了逆向工作者剖析漏洞,尋覓指令片段,原生腳本不行強(qiáng)壯的問(wèn)題。本文將利用LyScript插件實(shí)現(xiàn)批量打開(kāi)關(guān)閉進(jìn)程,感興趣的可以了解一下
    2022-07-07
  • Python eval的常見(jiàn)錯(cuò)誤封裝及利用原理詳解

    Python eval的常見(jiàn)錯(cuò)誤封裝及利用原理詳解

    這篇文章主要介紹了Python eval的常見(jiàn)錯(cuò)誤封裝及利用原理詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03

最新評(píng)論