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

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

如何解釋匹配詞之間可能存在的空格?

如何解釋匹配詞之間可能存在的空格?

慕的地8271018 2022-07-12 17:43:15
我想解析一些可能以一個或多個標簽開頭的個人日歷條目。在理想的世界中,我會有干凈的案例(以下是三個獨立條目的三個示例):a description without tags[one] [two] hello[single] world這應該分別給我回饋:a description without tagsone, two, hellosingle, word這個想法是作為輸入:可選[tag](或更多由空格分隔)和描述 - 理想情況下分組為標簽列表(可能為空)和描述字符串。我想我已經將這些案例與(\[(\S+)\])*.+. 但是,我不確定標簽之間的空格是否被正確忽略。無論如何,現(xiàn)實情況是,我的青少年草率打字用戶最終會得到諸如[glued1][glued2] wazaa[glued10][glued20]glued decription[glued]wazii和類似的。我想構建一個正則表達式,它會說“從字符串的開頭,取和之間的內容[,]盡可能多次(可能為零)并將這些匹配項返回給我,最后一個]減去可能的空格之后的內容( s) 他們之間”。對于正則表達式來說這不是太復雜了嗎?另一種方法是逐個字符地解析字符串——我可以這樣做,但這會不太優(yōu)雅。或者 - 或者 - 我可以使用正則表達式走多遠,并放棄其他情況(當他們鍵入的內容無論如何都沒有正確解析時,他們會發(fā)現(xiàn)有問題)
查看完整描述

4 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

為簡單起見,您可以將方括號內的所有內容與簡單的 regex 匹配r"\[(.*?)\]"。我們將在給定的示例中對其進行測試:


test_str = ['[glued1][glued2] wazaa','[glued10][glued20]glued decription','[glued]wazii','a description without tags','[one] [two] hello','[single] world']

一步步:


import re

regex = r"\[(.*?)\]"

for s in test_str:

    print(f"{s} -> {re.findall(regex, s)}")

        print(re.findall(regex, s))

結果是:


'[glued1][glued2] wazaa' -> ['glued1', 'glued2']

'[glued10][glued20]glued decription' -> ['glued10', 'glued20']

'[glued]wazii' -> ['glued']

'a description without tags' -> []

'[one] [two] hello' -> ['one', 'two']

'[single] world' -> ['single']

問題!如果您在描述中的某處使用方括號,這將不起作用。


查看完整回答
反對 回復 2022-07-12
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

假設您的字符串除了標簽'之外不包含任何括號,您可以嘗試使用匹配除括號本身(和空格)之外的所有內容的正則表達式:

[^ \[\]]*

https://regex101.com/r/pUXAVC/1

編輯:此解決方案會將描述的標記分成單個組。如果您希望它們組合在一起,您可以簡單地從正則表達式中刪除空格字符,[^\[\]]*并修剪您在組中獲得的額外空格。


查看完整回答
反對 回復 2022-07-12
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

我想你幾乎擁有它。這會給你你想要的嗎?

^(\[\S+\]\s*)*\s*(.+)

^表示字符串的開始。\s表示空格。所以這就是說:在字符串的開頭,查找括號中的內容 0 次或更多次。然后查找 0 個或更多空格,然后匹配后面的內容。唯一的問題是它捕獲了可能會或可能不會出現(xiàn)在標簽之間的空白。為了解決這個問題,也許你可以有一個后處理步驟來去除空白。


查看完整回答
反對 回復 2022-07-12
?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

就我對您需求的理解而言,這似乎可以正常工作:

(^[\[]+\]|[\w\s]+)+

https://regex101.com/r/0cA95I/1


查看完整回答
反對 回復 2022-07-12
  • 4 回答
  • 0 關注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號