首頁  >  問答  >  主體

等效MySQL正規表示式,相當於以下Python正規表示式

python模式=> ^(?=.\bABDUL\b)(?=.#\bHAI\b.)(?=.\bMANSOOR\b).* $
需要等效的mysql模式
你能幫我嗎?

P粉496886646P粉496886646409 天前400

全部回覆(1)我來回復

  • P粉314915922

    P粉3149159222023-09-08 00:58:02

    問題中的正規表示式是一種奇怪的方式來匹配簡單的單字。不清楚預期的輸入是什麼。也許,輸入可以證明這種方法的合理性。

    ^(?=.\bABDUL\b)(?=.\bHAI\b.)(?=.\bMANSOOR\b).*$

    這意味著:開頭必須是任何不是單字的字符,然後是 ABDUL,一個非單字字符,HAI,一個非單字字符,MANSOOR,一個非單字字符或字串的結尾。

    ^[^[:alnum:]]ABDUL[^[:alnum:]]HAI[^[:alnum:]]MANSOOR([^[:alnum:]]?.*)?$

    這意味著:開頭不是數字或字母字符(字母數字字符),ABDUL,一個非字母數字字符,HAI,一個非字母數字字符,MANSOOR,一個非字母數字字符或字符串的結尾。

    我沒有測試它,也沒有打算使它完全與第一個相同,但應該足夠接近。

    對於任何想要將其複製到他們的程式碼中的人:

    • 匹配第一個字元並不常見,可能是原始正規表示式中的錯誤。
    • (?=...) 是一個“前瞻斷言”,不消耗任何字符,POSIX 版本沒有它,但對於簡單的字串搜尋可能不重要。
    • 兩個版本都應該符合像 !ABDUL$HAI)MANSOOR 這樣的字串 - 確保這就是你想要的。

    對於想要理解我使用的正規表示式的人,可以參考以下連結:

    https://dev.mysql.com/doc/refman/8.0/en/regexp.html(mysql 的POSIX 語法)和https://docs.python.org/ 3/library/re.html(python 的PCRE = Perl 相容語法)

    回覆
    0
  • 取消回覆