1. 程式人生 > >python中刪除特定字串

python中刪除特定字串

現在有一個字串,有一些不想要的單詞和特殊字元

import re
text = 'wo,didi;wode,;wode'
text0 = text.replace('didi', '')
print(re.sub('[,;]', ' ', text0))

先用替換後用子串可以得到自己想要的結果:wo wode wode

python中字串自帶的split方法一次只能使用一個字元對字串進行分割,但是python的正則模組則可以實現多個字元分割

import re
re.split('[_#|]','this_is#a|test')
  • 1
  • 2

返回的是一個列表(list),輸出結果如下:

['this', 'is', 'a', 'test']

*****************************************************************************************************

問題:

    過濾使用者輸入中前後多餘的空白字元

      ‘    ++++abc123---    ‘

    過濾某windows下編輯文字中的’\r’:

      ‘hello world \r\n’

    去掉文字中unicode組合字元,音調

      "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng" 

如何解決以上問題?

    去掉兩端字串: strip(), rstrip(),lstrip()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#!/usr/bin/python3

= '  -----abc123++++       '

# 刪除兩邊空字元

print(s.strip())

# 刪除左邊空字元

print(s.rstrip())

# 刪除右邊空字元

print(s.lstrip())

# 刪除兩邊 - + 和空字元

print(s.strip().strip('-+'))

print("北門吹雪:http://www.cnblogs.com/2bjiujiu/")

    刪除單個固定位置字元: 切片 + 拼接

1

2

3

4

5

6

#!/usr/bin/python3

= 'abc:123'

# 字串拼接方式去除冒號

new_s = s[:3+ s[4:]

print(new_s)

    刪除任意位置字元同時刪除多種不同字元:replace(), re.sub()

1

2

3

4

5

6

7

8

9

10

11

12

#!/usr/bin/python3

# 去除字串中相同的字元

= '\tabc\t123\tisk'

print(s.replace('\t', ''))

print("北門吹雪: http://www.cnblogs.com/2bjiujiu/")

import re

# 去除\r\n\t字元

= '\r\nabc\t123\nxyz'

print(re.sub('[\r\n\t]', '', s))

    同時刪除多種不同字元:translate()        py3中為str.maketrans()做對映

1

2

3

4

5

6

7

#!/usr/bin/python3

= 'abc123xyz'

# a _> x, b_> y, c_> z,字元對映加密

print(str.maketrans('abcxyz''xyzabc'))

# translate把其轉換成字串

print(s.translate(str.maketrans('abcxyz''xyzabc')))

去掉unicode字元中音調

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

#!/usr/bin/python3

import sys

import unicodedata

= "Zhào Qián Sūn Lǐ Zhōu Wú Zhèng Wáng"

remap = {

# ord返回ascii值

ord('\t'): '',

ord('\f'): '',

ord('\r'): None

}

# 去除\t, \f, \r

= s.translate(remap)

'''

  通過使用dict.fromkeys() 方法構造一個字典,每個Unicode 和音符作為鍵,對於的值全部為None

  然後使用unicodedata.normalize() 將原始輸入標準化為分解形式字元

  sys.maxunicode : 給出最大Unicode程式碼點的值的整數,即1114111(十六進位制的0x10FFFF)。

  unicodedata.combining:將分配給字元chr的規範組合類作為整數返回。 如果未定義組合類,則返回0。

'''

cmb_chrs = dict.fromkeys(c for in range(sys.maxunicode) if unicodedata.combining(chr(c))) #此部分建議拆分開來理解

= unicodedata.normalize('NFD', a)

'''

   呼叫translate 函式刪除所有重音符

'''

print(b.translate(cmb_chrs))

相關推薦

python刪除特定字串

現在有一個字串,有一些不想要的單詞和特殊字元 import re text = 'wo,didi;wode,;wode' text0 = text.replace('didi', '') print(re.sub('[,;]', ' ', text0)) 先用替換後用子串

資料結構——演算法之(022)( 在字串刪除特定的字元)

【申明:本文僅限於自我歸納總結和相互交流,有紕漏還望各位指出。 聯絡郵箱:[email protected]】 題目: 輸入兩個字串,從第一字串中刪除第二個字串中所有的字元。例如,輸入”They are students.”和”aeiou”, 則刪除之後的第

Python 找出字串出現頻率最高的字母

發現一個學Python的好網站 https://py.checkio.org 第一題大概意思就是找出一個字串中出現頻率最高字母 我的思路也是直接,弄個字典,遍歷字串,將鍵值對填進字典裡,健就是字母,值就是出現了幾次,再查下字典裡最大的值即可。 上我的程式碼 import

Pandas過濾dataframe包含特定字串的資料

假如有一列全是字串的dataframe,希望提取包含特定字元的所有資料,該如何提取呢? 因為之前嘗試使用filter,發現行不通,最終找到這個行得通的方法。 舉例說明: 我希望提取所有包含'Mr.'的人名 1、首先將他們進行字串化,並得到其對應的布林值: >>&

Python常用操作字串的函式與方法總結

本文轉載自:https://www.jb51.net/article/79196.htm Python中常用操作字串的函式與方法總結 這篇文章主要介紹了Python中常用操作字串的函式與方法總結,包括字串的格式化輸出與拼接等基礎知識,需要的朋友可以參考下 例如這樣一個字串 Python,

python,獲取字串的長度

說明:   與其他的語言一樣,有時候需要檢視或者說計算字串的長度。在此記錄下python中通過哪個函式實現。 操作過程: 1.通過len()函式返回字串的長度 >>> text='python' >>> len(text) 6 >>>

Python必備的字串拼接方法,你知道多少?

python拼接字串一般有以下幾種方法: ①直接通過(+)操作符拼接 s = 'Hello'+' '+'World'+'!' print(s) 輸出結果:Hello World! 使用這種方式進行字串連線的操作效率低下,因為python中使用 + 拼接兩個字串時會生成

python位元組與字串的轉換

#bytes object     byte = b"byte example"     # str object     str = "str example"   &nbs

Python常用的字串內建函式

        1、string.capitalize()         把字串的第一個字元大寫。 >>> myString = "hello world, hello every

python 幾種字串的處理

1、list轉string字串      使用''.join(list) 例:      listA=['我'.'是','Python','菜鳥']     str = ''.join(listA)

python刪除某個元素的3種方法

1.remove: 刪除單個元素,刪除首個符合條件的元素,按值刪除 舉例說明: >>> str=[1,2,3,4,5,2,6] >>> str.remove(2) >>> str [1, 3, 4, 5, 2, 6] 2

Python的格式化字串

在許多程式語言中都包含有格式化字串的功能,比如C和Fortran語言中的格式化輸入輸出。Python中內建有對字串進行格式化的操作%。 模板 格式化字串時,Python使用一個字串作為模板。模板中有格式符,這些格式符為真實值預留位置,並說明真實數值應該呈現的格式。P

python刪除list某指定元素

                        python要刪

Python實現替換字串的子串

假如有個任務: 給定一個字串,通過查詢字典,來替換給定字元中的變數。如果使用通常的方法: >>> "This is a %(var)s" % {"var":"dog"} 'This is a dog' >>> 其實可以使用string.

python求漢字字串長度以及預設編碼與解碼格式設定

print(len('你好啊')) 結果為 3 一般漢字在uicode編碼格式中,一個漢字對應長度為1 在utf-8編碼格式中,一個漢字對應長度為3 我在剛開始寫的時候,在python3環境下,列表value裡,用的是:len(value[i].decode('u

python 英混合字串格式對齊所引發的思考

對字串非中文格式化,我們常用的方式是通過print 方式下的右對齊 n%s(左對齊-n%s)或者ljust\rjust; 但上面存在一個缺點就是對於含有中文字串的處理是不相容,導致打印出來格式還是沒有進行對齊的; 補充下rjust的處理規則: 1. 通過len獲取字串的長

JAVA陣列刪除特定元素的解決辦法

今天做基礎演算法題的時候,遇到讓把一個int型的陣列中指定的數字移除,得到新陣列的長度。乍一想,數組裡的數是不能刪除的,所以我想了很多種複雜的計算方法,但是結果都不對。後來在網上找了一個簡潔的程式碼,感覺非常受益,趕緊記錄下來。下面是我學習後寫的演算法程式碼:  public

python從大字串裡擷取小字串

以一例題說明:分別用了for迴圈和while迴圈兩種方式 要尋找的大字串: #coding:utf-8 string='<div class="item-list ni-list"><ul><li class="first"><

Python如何定義字串

字串可以用''或者""括起來表示。 如果字串本身包含'怎麼辦?比如我們要表示字串 I'm OK ,這時,可以用" "括起來表示: "I'm OK" 類似的,如果字串包含",我們就可以用' '括起來表示: 'Learn "Python" in imooc' 如果

Python遞迴字串反轉

我們可以用Python輕鬆的反轉字串,程式碼如下: def reverse(s): if s == '': return s else: return reverse(s[1:]) + s[0] print(reverse(