mysql - 用于遵循 python 正则表达式的等价 mysql 正则表达式
问题描述
python模式=> ^(?=. \bABDUL\b)(?=. \bHAI\b. )(?=. \bMANSOOR\b).*$需要相等的mysql模式你能帮帮我吗?
解决方案
有问题的正则表达式是一种非常奇怪的方式来匹配简单的单词。目前尚不清楚预期的输入是什么。也许,输入证明了这种方法。
^(?=.\bABDUL\b)(?=.\bHAI\b.)(?=.\bMANSOOR\b).*$
这意味着:开头必须有任何不是单词一部分的字符,然后是 ABDUL、非单词字符、HAI、非单词字符、MANSOOR、非单词字符或字符串的结尾。
^[^[:alnum:]]ABDUL[^[:alnum:]]HAI[^[:alnum:]]MANSOOR([^[:alnum:]]?.*)?$
即:开头,不是数字或字母字符(字母数字),ABDUL,一个非字母数字,HAI,一个非字母数字,MANSOOR 一个非字母数字或字符串的结尾。
我没有对其进行测试,也不打算让它与第一个 100% 相同,但它应该足够接近。
对于任何想要将其复制到他们的代码的人:
- 匹配第一个字符不是很常见,并且可能是原始正则表达式中的错误。
- (?=...) 是一个“前瞻断言”,它不消耗任何字符,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 for python(PCRE = Perl 兼容语法)
推荐阅读
- python - 如何在不使用 numpy 的情况下在 python 中制作这个矩阵?
- c++ - 在编译时映射两个不同的枚举c ++
- c# - C# HashSet 重叠反射
- azure-cosmosdb - 使用 azure 数据工厂向 Cosmos DB Json 数据添加新列
- javascript - 量角器元素在点 (x, y) 处不可点击
- css - 当您在 CSS 中有 2 条具有完全相同属性的规则时,最好的方法是什么?
- telegram - 有没有办法使用 Telegram API 获取通过特定邀请链接加入的人数?
- python - 在 Python 中使用线程/多处理来同时下载图像
- sql - SQLite 选择 SUM 滚动窗口
- google-cloud-dataflow - 如何使用 gcloud 删除数据流作业?