91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-08-19 16:06:35 來源:腳本之家 閱讀:182 作者:沙振宇 欄目:開發技術

1、背景

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

2、遇到坑

原本字符串:大坪英利國際8號樓88-88號重慶漢喬科技有限公司大坪英利國際8號樓
去除最左邊的字符串:大坪英利國際8號樓
預期結果:88-88號重慶漢喬科技有限公司大坪英利國際8號樓

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

Python中lstrip() 方法用于截掉字符串左邊的空格或指定字符。
但實際上結果:

lstrip: -88號重慶漢喬科技有限公司大坪英利國際8號樓

3、找到 lstrip() 坑的真相

函數原型:

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 ""

看來 lstrip 方法是 比對字符 并去除,而不是簡單的去除最左邊字符串。
那好,再驗證一下:

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

結果:

師范大學

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

4、解決方案

4.1、方法1 split

函數原型:

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

函數原型:

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: 去除字符串中 首個指定字符串
"""


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("大坪英利國際8號樓88-88號重慶漢喬科技有限公司大坪英利國際8號樓", "大坪英利國際8號樓")
  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("重慶重慶師范大學", "重慶")
  print("test_2 lstrip:", tmp_1)
  print("test_2 replace:", tmp_2)
  print("test_2 split:", tmp_3)

5.2、效果

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

6、延伸

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

6.1、看字符串開頭是否是指定字符串

如果需要以指定字符串開頭,要用 startswith 函數來判斷。

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

如果不存在指定字符串,直接用 split 和 replace 會直接崩潰的,那就需要 find 函數來查看了。

到此這篇關于Python 去除字符串中指定字符串的文章就介紹到這了,更多相關Python 去除字符串 內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

顺昌县| 星子县| 炎陵县| 高雄市| 仁怀市| 宁都县| 南宫市| 千阳县| 普宁市| 瓦房店市| 乡城县| 利川市| 邳州市| 迁安市| 翁源县| 贞丰县| 普安县| 简阳市| 壶关县| 固安县| 洛南县| 万宁市| 宜州市| 天台县| 涟水县| 武乡县| 武宣县| 监利县| 原平市| 禄丰县| 苏尼特左旗| 壶关县| 平顶山市| 东至县| 名山县| 如皋市| 称多县| 台州市| 隆回县| 元阳县| 巴彦淖尔市|