我有包含如下序列的字串:
^^fruit/citrus^fruit/citrus/orange^meat^vegetables/carrot^^
^^fruit/citrus^vegetables^vegetables/carrot^^
^^fruit/citrus/orange^vegetables/carrot^^
^^fruit/citrus/lemon^vegetables/potatoe^^
序列中的步驟用 ^ 字符分隔。
我希望能夠使用多字符通配符來搜索這些字串,但通配符應該只在一個步驟的范圍內作業。例如這個偽查詢:
^^[fruit/*]^vegetables/*^^
應該匹配以“fruit/”開頭的任何步驟開頭的所有序列,然后是“vegetables/”開頭的步驟。所以這些應該匹配:
^^fruit/citrus/orange^vegetables/carrot^^
^^fruit/citrus/orange^vegetables/potatoe^^
但不是這些:
^^fruit/citrus^fruit/citrus/orange^meat^vegetables/carrot^^
^^fruit/citrus^vegetables^vegetables/carrot^^
在 MySQL(5.6 或 8.0)REGEX 中有沒有辦法做到這一點?我從哪里開始?
uj5u.com熱心網友回復:
您可以使用正則運算式
^\^{2}fruit/[^^]*\^vegetables/
請參閱正則運算式演示。詳情:
^- 字串的開始\^{2}-^^子串fruit/- 固定文本[^^]*- 零個或多個字符^\^vegetables/- 一個^vegetables/字串。
在 MySQL 中,請記住在正則運算式轉義 ( "^\\^{2}fruit/[^^]*\\^vegetables/") 中使用雙反斜杠。類似的東西SELECT col from table1 WHERE col REGEXP "^\\^{2}fruit/[^^]*\\^vegetables/"。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/471383.html
上一篇:在php中使用PDO將影像上傳到phpmyadmin時出錯
下一篇:基于2列的重復行的SQL查詢
