我正在使用 Mongo 聚合器來準備查詢。
我想檢查兩件事:
- 如果我的字串有數字(例如“Luk3 Sk1w8lk3r”);
- 如果我的字串包含特殊字符(例如“L*ke Sk!w”lz”)
- 或者如果兩者都包含(例如“L0ke Sk!w0l'z8”)
我正在嘗試使用 $regex 方法,但似乎我必須指定太多欄位:
{ value: { $regex: "!" } }
這只會找到包含“!”的字串,但我想找到可能(或可能不)包含更多特殊字符的字串。
uj5u.com熱心網友回復:
1.如果我的字串有數字(例如“Luk3 Sk1w8lk3r”);
你的過濾器{"value":{"$regex": "\d"}}。
2.如果我的字串包含特殊字符(例如“L*ke Sk!w”lz”)
{"value":{"$regex":"[.* ?^${}()|][\]"}}
正則運算式的撰寫方式略有不同(不對\所有特殊字符使用轉義):
"[.* ?^${}()|\]\[\\]"
\您為[和]指定轉義\。此外,您可以在正則運算式中包含其他特殊字符,例如!和。'
3.或者如果兩者都包含(例如“L0ke Sk!w0l'z8”)
- “如果包含兩者” - 表示“與”操作。
- “包含數字或特殊字符” - 表示“或”運算(來自這篇文章的標題)“
這是兩者的正則運算式:
- 要執行“AND”操作,請使用:
"(?=.*[.'!* ?^${}()|\]\[\\])(?=.*[0-9])" - 要執行“或”操作,請使用以下命令:
"[.'!* ?^${}()|\]\[\\]|\d"
uj5u.com熱心網友回復:
我找到了使用$match的解決方法:
- 如果字串包含數字:
{"value":{"$regex":"\d"}}
- 如果字串包含特殊字符:
{"值":{"$regex": "[\.\*\ \?\^\${}\(\)|\]\[\\]"}}
感謝這些查詢的每一個未來改進!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/494688.html
標籤:mongodb
