第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用正則表達(dá)式將字符串解析為組

使用正則表達(dá)式將字符串解析為組

元芳怎么了 2023-08-08 15:12:16
我似乎無法讓正則表達(dá)式與以下示例一起使用。基本上我想從一個字符串中解析 4 個組,如下所示:test.thistest[extra].thistest[extra].this{data}test.this{data}我想分別針對上面的示例得到這樣的答案:val1='test', val2=None, val3='this', val4=Noneval1='test', val2='extra', val3='this', val4=Noneval1='test', val2='extra', val3='this', val4='data'val1='test', val2=None, val3='this', val4='data'我嘗試了這個,但它不起作用:import retests = ["test.this",         "test[extra].this",         "test[extra].this{data}",         "test.this{data}",]for test in tests:    m = re.match(r'^([^\[\.]+)(?:\[([^\]]+)])(?:\.([^{]+){)([^}]+)?$', test)    if m:        print(test, '->', m[1], m[2], m[3], m[4])
查看完整描述

2 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊

如果只有第二組和第四組是可選的,您可以使用:

^([^\[\.]+)(?:\[([^\]]+)])?\.([^{\r\n]+)(?:{([^}\r\n]+)})?$

演示。

請注意,\r\n被添加到第三組和第四組的否定字符類中,以避免超出行尾。如果您只使用單行字符串,則沒有必要。


查看完整回答
反對 回復(fù) 2023-08-08
?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗 獲得超9個贊

import re


tests = ["test.this",

     "test[extra].this",

     "test[extra].this{data}",

     "test.this{data}"]


pat = re.compile(r'(\w+)([\[])?(\w+)?([\]])?\.(\w+){?(\w+)?')

for test in tests:

    x = pat.search(test)

    print(x.group(1),x.group(3),x.group(5),x.group(6))

(\w+) -> 捕獲測試


([\[])? -> 捕獲[


(\w+)? -> 捕獲額外的


([\]])? -> 捕獲]


(\w+) -> 捕獲此內(nèi)容


(\w+)? -> 捕獲數(shù)據(jù)


查看完整回答
反對 回復(fù) 2023-08-08
  • 2 回答
  • 0 關(guān)注
  • 152 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號