亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

正則表達式忽略多個前綴并僅在它們沒有一個或兩個特定的硬編碼屬性時才匹配?

正則表達式忽略多個前綴并僅在它們沒有一個或兩個特定的硬編碼屬性時才匹配?

Go
米脂 2022-07-18 17:10:24
我正在尋找一個 GoLang RE2 正則表達式,如果用戶鍵入以下內容之一,它只會不匹配,所有這些都不能區分大小寫:.i l .i Latest .info l .info Latest p!i l p!i latest p!info l p!info latest因此,在每一種情況下,如果用戶只輸入前綴而沒有latestor之后,或者在前綴之外和之后輸入l任何其他內容,包括任何數字或特殊字符,則在每一種情況下,它都有一個前綴和一個屬性。這應該是一場比賽。latestl我已經杰里操縱了這個正則表達式: (?i)\A\.i (?:L.|[^L]+L)這個正則表達式有些工作,但它只適用于.i前綴并檢查L前面的 a 而不檢查數字。我無法思考如何解決這個問題。我不介意使用多個正則表達式,每個前綴一個。我嘗試將 替換為\.i其他前綴,將(?:L.|[^L]+L)部分替換為LATEST. 這似乎不起作用。謝謝您的幫助 : )
查看完整描述

1 回答

?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

Go 不支持環視。在這種情況下,您可以指定允許匹配的內容。

在這種情況下,您允許任何前綴可選地后跟除“l”或“latest”之外的“word”

一種選擇可能是

(?i)^(?:\.|p!)i(?:nfo)?\b(?:(?: +(?:la(?:t(?:e(?:s(?:t\S)?)?)?)?)| +(?:[^\sl]\S*|l[^\sa]\S*|la[^\st]\S*|lat[^\se]\S*|late[^\ss]\S*|lates[^\st]|latest\S+))(?: +.*)?)?$

在零件

  • (?i)不區分大小寫的修飾符

  • ^字符串的開始

  • (?:\.|p!)i匹配.ip!i

  • (?:nfo)?\b可選匹配nfo后跟單詞邊界

  • (?:非捕獲組

    • +(?:la(?:t(?:e(?:s(?:t\S)?)?)?)?)匹配 1+ 個空格和la lat late lateslatest (后跟至少一個非空白字符以表示最新)

    • |或者

    • +(?:[^\sl]\S*|l[^\sa]\S*|la[^\st]\S*|lat[^\se]\S*|late[^\ss]\S*|lates[^\st]|latest\S+)匹配 1+ 個空格后跟 6 個變體,這些變體可以以相同的單詞開頭,不包括 1 個字符(也排除使用 的空白字符\s),或匹配后跟至少一個空白字符的單詞

    • (?:非捕獲組

    • )關閉非捕獲組

    • (?: +.*)?可選匹配 1+ 個空格和 0+ 次除換行符以外的任何字符

    • )?關閉非捕獲組并使其可選

    • $字符串結束



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

    添加回答

    舉報

    0/150
    提交
    取消
    微信客服

    購課補貼
    聯系客服咨詢優惠詳情

    幫助反饋 APP下載

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

    公眾號

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