當前位置:首頁 » 編程語言 » python匹配字元串

python匹配字元串

發布時間: 2022-12-15 05:44:11

1. python 字元串提取信息方法總結

在日常項目中,我們經常會使用python從字元串中提取我們想要的信息,以下是各種提取信息方法的總結。

格式: str[beg:end:step]
描述: 字元串[開始索引:結束索引:步長]切取字元串為開始索引到結束索引-1內的字元串步長不指定時步長為1

舉例:
print(str[::2]) //::這里表示整個字元串,每兩個位置提取一個
print(str[1:3]) //提取第2個到第3個
print(str[2::]) //截取2 - 末尾的字元

本小節介紹了,處理字元串經常用到的一些函數方法。

語法: str.find(str, beg=0, end=len(string))
描述: Python find() 方法檢測字元串中是否包含子字元串 str ,如果指定 beg(開始) 和 end(結束) 范圍,則檢查是否包含在指定范圍內,如果包含子字元串返回開始的索引值,否則返回-1。

語法: str.split(str="", num=string.count(str)).
描述: Python split() 通過指定分隔符對字元串進行切片,如果參數 num 有指定值,則分隔 num+1 個子字元串.返回分割後的字元串列表,該方法可以講字元串轉化為列表處理。

另外的: str.splitlines([keepends])按照行(' ', ' ', ')分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。

語法: str.partition(str)
描述: partition() 方法用來根據指定的分隔符將字元串進行分割。如果字元串包含指定的分隔符,則返回一個3元的元組,第一個為分隔符左邊的子串,第二個為分隔符本身,第三個為分隔符右邊的子串。

語法: str.replace(old, new, max)
描述: Python replace() 方法把字元串中的 old(舊字元串) 替換成 new(新字元串),如果指定第三個參數max,則替換不超過 max 次。

語法: str.strip([chars]);
描述: Python strip() 方法用於移除字元串頭尾指定的字元(默認為空格或換行符)或字元序列。:該方法只能刪除開頭或是結尾的字元,不能刪除中間部分的字元。

語法: str.join(sequence)
描述: Python join() 方法用於將序列中的元素以指定的字元連接生成一個新的字元串。

上述方法還有其變形,如str.rfind(),這代表從字元串右邊開始處理,正常是從左邊開始處理。下表是其它常用的python字元串自帶函數方法。

正則表達式是一個特殊的字元序列,它能幫助你方便的檢查一個字元串是否與某種模式匹配。本小節主要介紹Python中常用的正則表達式處理函數和正則表達式的書寫規則。
re 模塊使 Python 語言擁有全部的正則表達式功能。所以在python中使用正則表達式處理函數需要import re

語法: re.search(pattern, string, flags=0)
描述: re.search 掃描整個字元串並返回第一個成功的匹配。匹配成功re.search方法返回一個匹配的對象,否則返回None。

語法: re.sub(pattern, repl, string, count=0, flags=0)
描述: Python 的 re 模塊提供了re.sub用於替換字元串中的匹配項。

語法: pattern.findall(string, pos, endpos)
描述: 在字元串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表。注意: match 和 search 是匹配一次 findall 匹配所有。

模式字元串使用特殊的語法來表示一個正則表達式:

2. 在Python中怎麼匹配多個「取非」的長字元串

按照你的要求寫的正則表達式 ^((?!ABC)(?!一二三).)+$

完整的Python程序如下

importre

s=['123ABC12345','12一二三12345','1一二345','12A345678','1一2二3三45','1AB23C45']

regex=r'^((?!ABC)(?!一二三).)+$'

foriinrange(0,len(s)):

result=re.match(regex,s[i])

ifresult:

print(result.group(0))

Python源代碼(注意源代碼的縮進)

3. python 如何匹配一個字元串是否是以B開頭的

在正則表達式中,使用^匹配字元串的開頭

importre

pattern=re.compile('^B')
aStr='Backbone'
bStr='backbone'
ifpattern.search(aStr):
print'StartwithB'
ifpattern.search(bStr)
print'NotstartwithB'

使用re包的search函數,如果匹配到則返回一個對象,如果沒有比配的則返回None,可以將返回值直接作為if語句判斷的條件。

4. 如何利用python語言匹配文本文件中的指定字元串,並將其所在行的後面幾

s="指定字元串"
f=open("文本文件名")
n=int(raw_input("輸入輸出的行數:"))
line=f.readline()
whileline:
ifsinline:
printline
foriinrange(n):
line=f.readline()
ifline:
printline
else:
break
ifnotline:break
line=f.readline()

5. python 正則表達式,怎樣匹配以某個字元串開頭,以某個字元串結尾的情況

python正則匹配以xx開頭以xx結尾的單詞的步驟:

1、假設需要匹配的字元串為:site sea sue sweet see case sse ssee loses需要匹配的為以s開頭以e結尾的單詞。正確的正則式為:sS*?e

2、使用python中re.findall函數表示匹配字元串中所有的可能選項,re是python里的正則表達式模塊。findall是其中一個方法,用來按照提供的正則表達式,去匹配文本中的所有符合條件的字元串。

3、代碼和結果如下:

text ='site sea sue sweet see case sse ssee loses'

re.findall(r'sS*?e',text)

結果為:['site', 'sue', 'see', 'sse', 'ssee']

(5)python匹配字元串擴展閱讀:

python正則匹配,以某某開頭某某結尾的最長子串匹配

代碼如下:

regVersions = re.search(r'(V|v)[0-9].*[0-9]', filename)

if regVersions:

print regVersions.group()


6. python 原始字元串匹配問題

其實,你只要看一下rhas和has的內容就知道了,print一下也可以看到不同點

rhas中的\n因為前面有r的原因,不代表回車換行,而分別是字元\和n。要匹配的話應該這么寫: r"hello\\n\nworld"或者"hello\\\\n\nworld"

我想令你困惑的應該是t和s在與has的匹配中為什麼一樣的吧?這主要是因為在re中,會重新解析字元串,t中的字元\n在重新解析時轉化為了回車
如果s='hello\\n\\nworld'也是可以與has匹配的
同樣的情況 t = r"hello\\n\\nworld"或者"hello\\\\n\\nworld"也可以與rhas相匹配

7. 請問python如何用正則匹配偶數位置的特定字元串

思路是進行兩次匹配,第一次兩位任意字元,第二次匹配a結尾,替換為b
import
re
def
replace(matched):
return
re.sub('a$',
'b',
matched.group())
s
=
'a12a24a45a767'
re.sub('..',
replace,
s)

熱點內容
160android 發布:2025-05-10 03:03:30 瀏覽:176
pythonstorage 發布:2025-05-10 02:58:38 瀏覽:498
如何查看電腦配置顯卡參數 發布:2025-05-10 02:37:00 瀏覽:106
證券交易密碼在哪裡修改 發布:2025-05-10 02:31:56 瀏覽:839
javafor是什麼意思 發布:2025-05-10 02:23:09 瀏覽:842
學生雲伺服器可以搭建網站嗎 發布:2025-05-10 02:10:36 瀏覽:441
共享的文件怎麼訪問許可權 發布:2025-05-10 02:02:49 瀏覽:166
如何選生信分析伺服器 發布:2025-05-10 01:53:11 瀏覽:409
移動ip案例雲dns伺服器 發布:2025-05-10 01:51:46 瀏覽:166
俠盜飛車解壓密碼是多少 發布:2025-05-10 01:45:04 瀏覽:713