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

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

重復(fù)使用相同的前綴來查找下一個匹配項(如果有)

重復(fù)使用相同的前綴來查找下一個匹配項(如果有)

HUH函數(shù) 2022-10-11 17:06:23
我有這種字符串:string = 'something .... something else ...url="/transfer/packages/00000000-0000-0000-0000-000000000000/connectors/68f74d66-ca3d-4272-9b59-4f737946b3f7/something/138bb190-3b12-4855-88e2-0d1cdf46aeb5/...../...../...../...../...."other things ...'沒有任何 CR/LF,都在一條線上。我想創(chuàng)建一個正則表達(dá)式:當(dāng)且僅當(dāng) url 以/transfer/packages/捕獲每個后續(xù) GUID直到引用字符串的結(jié)尾"要找到的 GUID 的數(shù)量是未知的,并且至少是一個到目前為止,我寫道:\/transfer\/packages\/[^"]*([A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12})"但它只捕獲 LAST guid。我需要一些如何重用前綴/transfer/packages/并保持匹配,每次都熱切地擴展搜索,而不是從前綴繼續(xù)。
查看完整描述

3 回答

?
拉莫斯之舞

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

如果您re在 Python 中使用模塊,則可以使用str.startwith并嘗試:


import re

url="/transfer/packages/00000000-0000-0000-0000-000000000000/connectors/68f74d66-ca3d-4272-9b59-4f737946b3f7/something/138bb190-3b12-4855-88e2-0d1cdf46aeb5/...../...../...../...../...."

if url.startswith('/transfer/packages/'):

    Guid_List = re.findall(r'(?i)[a-z0-9]{8}(?:-[a-z0-9]{4}){3}-[a-z0-9]{12}', url)

print(Guid_List)


查看完整回答
反對 回復(fù) 2022-10-11
?
ABOUTYOU

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

您可以使用支持無限長度量詞的PyPi 正則表達(dá)式模塊

(?<=url="/transfer/packages/[^\r\n"]*)[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}(?=[^\r\n"]*")

示例正則表達(dá)式演示(為演示目的選擇了另一個引擎)或查看Python 演示


另一種選擇是首先匹配url="/transfer/packages/后面跟著一個 guid 的行并匹配到下一個雙引號。

然后,您可以使用例如re.findall來獲取所有指南。

"/transfer/packages/[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}[^"\r\n]*"

正則表達(dá)式演示Python 演示

例如:

import re


regex = r'"/transfer/packages/[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}[^"\r\n]*"'

test_str = ("something .... something else ...\n"

    "url=\"/transfer/packages/00000000-0000-0000-0000-000000000000/connectors/68f74d66-ca3d-4272-9b59-4f737946b3f7/something/138bb190-3b12-4855-88e2-0d1cdf46aeb5/...../...../...../...../....\"\n"

    "other things ...\n\n"

    "68f74d66-ca3d-4272-9b59-4f737946b300")


for str in re.findall(regex, test_str):

    print(re.findall(r"[A-Za-z0-9]{8}-(?:[A-Za-z0-9]{4}-){3}[A-Za-z0-9]{12}", str))

輸出


['00000000-0000-0000-0000-000000000000', '68f74d66-ca3d-4272-9b59-4f737946b3f7', '138bb190-3b12-4855-88e2-0d1cdf46aeb5']



查看完整回答
反對 回復(fù) 2022-10-11
?
拉丁的傳說

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

從這個 SO答案

至于第二個問題,這是一個普遍的問題。使用 PCRE 正則表達(dá)式不可能獲得任意數(shù)量的捕獲,因為在重復(fù)捕獲的情況下,只有最后一個捕獲的值存儲在組緩沖區(qū)中。結(jié)果數(shù)組中的子匹配數(shù)不能多于正則表達(dá)式模式內(nèi)的捕獲組數(shù)。有關(guān)更多詳細(xì)信息,請參閱重復(fù)捕獲組與捕獲重復(fù)組。


查看完整回答
反對 回復(fù) 2022-10-11
  • 3 回答
  • 0 關(guān)注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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