當前位置:首頁 » 編程語言 » python正則表達式實例

python正則表達式實例

發布時間: 2024-10-21 14:31:35

python入門問題,關於正則表達式。求高手通俗解答。

pattern=r'([1-9]{1,3}(.[0-9]{1,3}){3})'

[1-9]{1,3}表示匹配由1-9之間任意數組成的1位、2位或3位數,如1,12,123

.[0-9]{1,3}表示匹配1個點接由0-9之間任意數組成的1位、2位或御散3位數,如.1,.12,.123

(.[0-9]{1,3}){3}表示.[0-9]{1,3}的匹配條件重復3次,如.1.2.3,.1.12.123,168.1.1

([1-9]{1,3}(.[0-9]{1,3}){3})表示匹配1-9之間任意數組成的1位、2位或3位數+1個點接由0-9之間任意數組成的1位、2位陵拆亂或3位數 * 3次,所以可以尺檔匹配127.0.0.1,192.168.1.66

()僅僅表示括弧內的匹配項作為一組匹配,不會影響匹配的條件,

Ⅱ python 正則表達式 \bs*.\Se\b與\bs\S*e\b的含義解釋

實測:

>>>res=re.compile(r's*.Se')
>>>resl=re.findall(res,txt)
>>>resl
['site','sue','see','sse','ssee']
>>>res=re.compile(r'sS*?e')
>>>resl=re.findall(res,txt)
>>>resl
['site','sue','see','sse','ssee','somewhere']


第一個正則:

——單詞分界,

s*——0個或多個s

.——任一字元

S——任一非空字元

e——字母e

——單詞分界


第一個正則是錯誤的,它還可以匹配 "are"、"ss[一個空格]re",等不符合要求的內容。


後者是可以匹配到的。

Ⅲ 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']

(3)python正則表達式實例擴展閱讀:

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

代碼如下:

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

if regVersions:

print regVersions.group()


Ⅳ Python用正則表達式匹配含有中文的字元串,匹配不到

代碼如下:

#coding=utf-8

importre
s=u'<li><aclass="nav-first"href="/">首頁</a></li>'
r=re.compile(u'<li><asclass="[^"]*"shref="[^"]">(.*?)(?=</a></li>)')
ss=r.findall(s)
forstrinss:
printstr

運行結果:

Ⅳ python的正則表達式

1,正則表達式的一些內容

        正則表達式主要是用來匹配文本中需要查找的內容,例如在一片文章中找出電話號碼,就中國的來說11位純數字(不說座機),則使用"d{11}" 意味匹配數字11次,就能准確的查找出文本中的電話號碼. 還有就是在編寫網路爬蟲的時候需要提取很多超鏈接再次進行爬取,使用正則表達式就很方便.直接匹配http開頭就行,當然也可以使用beautifulsoup的select方法.

看下面的程序看看正則表達提取文本中的郵箱:


w 匹配字母,數字,下劃線 

+ 匹配1次或者多次
re是正則表達式的工具包,工具包出錯的話在anaconda的命令行輸入"pip install re"安裝,其他的工具包也是如此.

re.compile()中的r示意不是轉義字元,也就是保持後面字元串原樣,findall返回一個列表.下面還有一個版本的程序略有不同.


compile的另一個參數re.IGONORECASE(忽略大小寫),還可以是re.DORALL,多行模式,具體功能也是模糊不清,不過在使用通配符 . 匹配的時候加上re.DOTALL參數能夠匹配換行.如果希望忽略大小寫和多行模式都開啟可以使用re.compile(r'....',re.IGNORECASE|re.DOTALL) .

表達式使用( ),對匹配到的內容分為3組 也就是(w+)出現字母,數字,下劃線一次或多次,這個分組就是下面使用match對象的grou()方法的時候的參數.不給參數和參數0都是得到整個匹配到的內容,  參數1得到第一個括弧匹配到的內容,以此類推參數2和3,如果沒有括弧分組的話使用參數會出現錯誤.
search( )查找和正則式匹配的內容,只匹一次後面的那個找不到.返回一個match對象


w 匹配字母,數字,下劃線

W 匹配字母,數字.下劃線之外的所有字元

d 匹配數字

D 匹配非數字

s 匹配空格,製表符,換行符

S匹配除空格製表符,換行符之外的其他字元

[ .... ]定義自己的匹配,如[aeiouAEIOU ]匹配所有的母音字母,注意不是匹配單詞.

{最少次數,最多次數},例如{3,9} 匹配3-9次,{ ,10}匹配0-10次. 默認為匹配最多次數(貪心匹配),非貪心模式在後面加上問號 


?  可選 0次或者1次吧  

+匹配1次或多次

*匹配0次或者多次

^ 判斷開頭 ^d 如果待匹配串是數字開頭則返回第一個數字

$判斷結尾  d$  如果待匹配串是數字結尾則返回最後一個數字

.   通配符,匹配除換行之外的所有字元

   d{11}  匹配數字11次

    . * 匹配所有字元除 換行

[a-zA-Z0-9._%+-]  小寫和大寫字母、數字、句點、下劃線、百分號、加號或短橫

[a-zA-Z]{2,4} 匹配字母 2 - 4次

Ⅵ python只保留漢字數字和字母的正則表達式

import re

pattern = r'[^\u4e00-\u9fa5a-zA-Z0-9]+'

def keep_chinese_and_alphanumeric(text):
return re.sub(pattern, '', text)

# 示例
text = '這是一段包含漢字、數字和字母的字元串。\n1234abc'
result = keep_chinese_and_alphanumeric(text)
print(result) # 輸出:這是一段包含漢字、數字和字母的字元串。1234abc
該正則表達式 [^\u4e00-\u9fa5a-zA-Z0-9]+ 匹配的扮卜是枯握不包含中文、字母和數字的任意字元。使用 re.sub() 方法將匹配到的字元替換為空字元串,即可只保留漢字、數字和字沒缺慶母。

熱點內容
編程腦子疼 發布:2024-11-24 02:31:23 瀏覽:169
c語言狀態機 發布:2024-11-24 02:26:56 瀏覽:281
用友加密狗破解 發布:2024-11-24 02:23:16 瀏覽:707
鴻蒙系統如何變回安卓桌面 發布:2024-11-24 02:18:26 瀏覽:412
c語言填充 發布:2024-11-24 02:10:48 瀏覽:822
命名空間存儲 發布:2024-11-24 02:10:45 瀏覽:472
java重載與重寫 發布:2024-11-24 01:59:05 瀏覽:699
通緝令2ftp 發布:2024-11-24 01:59:04 瀏覽:295
android賽車游戲 發布:2024-11-24 01:58:18 瀏覽:105
女神聯盟賬號密碼哪裡找 發布:2024-11-24 01:58:12 瀏覽:479