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

python正則表達式變數

發布時間: 2022-05-08 12:49:09

python 基礎教程 第10章,正則表達式匹配問題

importre

a=re.compile(r'[(.+?)]')
scope={}


defreplace(ddd):
code=ddd.group(1)
try:
returnstr(eval(code,scope))
exceptSyntaxError:
exec(code,scope)
returncode


print(a.sub(replace,'[x=1],[y=2],[z=2],thesumof[x],[z]and[y]is[x+y+z]'))

scope是在全局變數里保存正則匹配出來的x,y,z變數,存到全局變數里去;

這本書的案例在except SyntaxError:後面少了點代碼,只提供注釋,前面其實已經提到用exec賦值了,只是代碼里沒有體現出來,我完善了下這個應該能看懂了,還有[],正則已經把[]替換掉了,換成x,y,z對應的值

Ⅱ python 正則表達式是什麼

正則表達式是對字元串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個「規則字元串」,這個「規則字元串」用來表達對字元串的一種過濾邏輯。

正則表達式是用來匹配字元串非常強大的工具,在其他編程語言中同樣有正則表達式的概念,Python同樣不例外,利用了正則表達式,我們想要從返回的頁面內容提取出我們想要的內容就易如反掌了。

正則表達式的大致匹配過程是:

1、依次拿出表達式和文本中的字元比較。

2、如果每一個字元都能匹配,則匹配成功;一旦有匹配不成功的字元則匹配失敗。

3、如果表達式中有量詞或邊界,這個過程會稍微有一些不同。

Ⅲ python正則表達式 匹配<a>標簽的title

解決方法如下:

  1. rex=r'<a.*?title="(.*?)".*?>.*?</a>'

  2. 補充一些正則表達式的知識:

    ##總結
    ##^匹配字元串的開始。
    ##$匹配字元串的結尾。
    ##匹配一個單詞的邊界。
    ##d匹配任意數字。
    ##D匹配任意非數字字元。
    ##x?匹配一個可選的x字元(換言之,它匹配1次或者0次x字元)。
    ##x*匹配0次或者多次x字元。
    ##x+匹配1次或者多次x字元。
    ##x{n,m}匹配x字元,至少n次,至多m次。
    ##(a|b|c)要麼匹配a,要麼匹配b,要麼匹配c。
    ##(x)一般情況下表示一個記憶組(rememberedgroup)。你可以利用re.search函數返回對象的groups()函數獲取它的值。
    ##正則表達式中的點號通常意味著「匹配任意單字元」

Ⅳ python正則表達式匹配的問題

你這個正則能夠匹配到什麼呢?只能匹配到一個空的字元串吧?


怎麼可能 會匹配到那麼長


而且filter_str這個變數在哪裡,就是上面的str?


這樣,我給你寫一個代碼片段,你試一下:

filter_str='filterparent1:0queue800:800something1:1500matchac100809/ffffffffadf'
a=re.search(r'.*',filter_str)
printa.group(0)


正則中的問號,如果放在 +號和 *號之後,表示正則的懶惰模式,你可以網路一下正則貪婪和正則懶惰,學習一下你就了解了。

Ⅳ python正則表達式是什麼意思

表示任意字元,*表示重復0至多次,.*表示任意字元出現0到多次

Ⅵ python用正則表達式是時出現錯誤

這明顯是類型錯誤,search方法的第二個參數是,字元串類型,你提供的不符合規定,所以要先給這個變數一個字元串。

希望能幫到你。。。

Ⅶ python 正則表達式的字元串變數匹配第一次出現

將這個字元串變數與「?"連接起來組成新的變數不就得了
var1="hello "
var2 ="world"
var="("+var1+")?"+var2
re.match(var,"hello world")
re.match(var,"world")

Ⅷ python正則表達式問題

你這個正則能夠匹配到什麼呢看只能匹配到一個空的字元串吧看


怎麼可能 會匹配到那麼長


而且filter_str這個變數在哪裡,就是上面的str看



這樣,我給你寫一個代碼片段,你試一下:

filter_str='filterparent1:0queue800:800something1:1500matchac100809/ffffffffadf'
a=re.search(r'.*',filter_str)
printa.group(0)



正則中的問號,如果放在 +號和 *號之後,表示正則的懶惰模式,你可以網路一下正則貪婪和正則懶惰,學習一下你就了解了。

Ⅸ 如何編寫python的正則表達式

Python re正則匹配中文,其實非常簡單,把中文的unicode字元串轉換成utf-8格式就可以了,然後可以在re中隨意調用
unicode中中文的編碼為/u4e00-/u9fa5,因此正則表達式u」[\u4e00-\u9fa5]+」可以表示一個或者多個中文字元
>>> import re

>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u'\u4e2d\u6587\uff1a123456aa\u54c8\u54c8\u54c8bbcc'
>>> print s
中文:123456aa哈哈哈bbcc

>>> re.match(u"[\u4e00-\u9fa5]+",s)
<_sre.SRE_Match object at 0xb77742c0>

>>> pat='中文'.decode("utf8")
>>> re.search(pat,s)
<_sre.SRE_Match object at 0x16a16df0>

>>> newpat='這里是中文內容'.decode("utf8")

>>> news=re.sub(pat,newpat,s)
>>> print news
這里是中文內容:123456aa哈哈哈bbcc

Ⅹ python 正則

p = re.compile(r'<th class="subject new">(.*?)</th>',re.S)
不要繼續問為什麼, 去查python手冊.
還有一個小提示,不建議用str作變數名, 因為str是python內建的一個類

熱點內容
昂科威選擇哪個配置 發布:2025-05-11 09:25:50 瀏覽:34
怎麼解決安卓視頻全屏卡頓 發布:2025-05-11 09:14:55 瀏覽:725
匯編從編譯到執行 發布:2025-05-11 09:09:04 瀏覽:257
安卓系統低版本如何升級 發布:2025-05-11 09:04:44 瀏覽:251
認證類型加密演算法 發布:2025-05-11 08:58:35 瀏覽:561
android停靠 發布:2025-05-11 08:42:23 瀏覽:645
超時代加密 發布:2025-05-11 08:41:29 瀏覽:780
為什麼還要輸入支取密碼 發布:2025-05-11 08:32:24 瀏覽:362
資料庫課程設計案例 發布:2025-05-11 08:15:33 瀏覽:51
為什麼安卓不能通過藍牙傳東西 發布:2025-05-11 08:15:27 瀏覽:717