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

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

Python 正則表達式匹配太多

Python 正則表達式匹配太多

富國滬深 2023-02-07 10:46:30
Regex101 測試:https ://regex101.com/r/Yfp311/2我很難使以下正則表達式模式起作用。對于下面的示例文本字符串,REF1 匹配整行,忽略在行中找到“//[text]”時應匹配的可選REF2 組。目前,正則表達式不承認 //[text] 并將整個文本錯誤地匹配為 REF1。我假設這是貪婪匹配的一個特征.. 但是我在實現非貪婪模式以及前瞻/后視(似乎沒有工作)方面都沒有成功。任何幫助或指導將不勝感激……不確定我遺漏了什么,因為我認為我當前的正則表達式模式應該可以正常工作。如果我能澄清任何事情,請告訴我!謝謝你!^(?P<ID>[A-Z][A-Z0-9]{3})?(?P<REF1>.+)(//(?P<REF2>.+))?(\n?(?P<EXTRA>.+))?$TEX1CNS0P5-AA//CAT-523-VID-00EOS-0XUX PETER LAB RANDOM TEXT DM5.TEX2BFTBSH9999SBRT2LRATRACE201TEX3GWS0P2-AA//D-14839048-99-3THERE WAS 200 COALS IN HIS STOCKING.預期匹配:字符串 1:編號:TEX1參考 1:CNS0P5-AA參考 2:CAT-523-VID-00EOS-0額外:XUX PETER LAB 隨機文本 DM5。字符串 2:編號:TEX2參考 1:BFTBSH9999SBRT2Lref2:(不匹配,因為“//”沒有出現在這個文本中)附加:RA TRACE201字符串 3:編號:TEX3參考 1:GWS0P2-AA參考 2:D-14839048-99-3額外:他的襪子里有 200 塊煤。
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

^(?P<ID>[A-Z][A-Z0-9]{3})?(?P<REF1>[^/\n]+)(//(?P<REF2>.+))?(\n?(?P<EXTRA>.+))?$

我已經更新了它。我想它現在通過了所需的案例:

https://regex101.com/r/Yfp311/3

原始實現的問題是REF1匹配除行終止符之外的所有內容。所以它也匹配//。


查看完整回答
反對 回復 2023-02-07
?
慕姐8265434

TA貢獻1813條經驗 獲得超2個贊

怎么樣

^(?P<ID>[A-Z][A-Z0-9]{3})?(?P<REF1>[^/\n]+)(//(?P<REF2>.+))?(\n?(?P<EXTRA>.+))?$

?

我認為在這種情況下手寫解析器更容易實現。



查看完整回答
反對 回復 2023-02-07
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

我最終發(fā)現了一個更理想的答案,因為當 REF1 文本包含單個“/”正斜杠時,提供的正則表達式模式會失敗。

^(?P<ID>[A-Z][A-Z0-9]{3})?(?P<REF1>(?:(?!//).)+)(//(?P<REF2>.+))?(\n?(?P<EXTRA>.+))?$

例如 - https://regex101.com/r/Yfp311/4

TEX4POF OF 20/03/09//CAT342134832489
P/O:1600 PARK AVENUE

使用負前瞻正則表達式模式有助于解決這一差距。


查看完整回答
反對 回復 2023-02-07
  • 3 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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