mysql - 需要基于字符为阿拉伯语的搜索参数在 Mysql 中进行匹配的正则表达式
问题描述
假设表格中的单词是:
- 绝对的
- ab astestabc
- ab作为
- ablxyx pqr tpl
- ab 作为 ablmnr
- 芥末作为 ablmnr
- vbn ab as abltere
我需要匹配起始单词的位置:“ab as”(包括空格),然后是无穷大(即 n 个组合或字符)
结果应在 2 个过滤器下查看:
1) 包括空格:以“ab as”和任何编号开头。附加的单词或字符
结果 :
ab 作为 ablxyx pqr tpl
ab 作为 ablmnr
2) 排除空格:以“ab as”和任何编号开头。附加到此字符串的字符和单词,没有空格
结果 :
绝对的
ab astestabc
结果应该是互斥的。
任何人都可以与我分享相同的 Mysql REGEX 表达式吗?
解决方案
您可以为此使用 REGEXP
CREATE TABLE textlist (`text` varchar(17)) ; INSERT INTO textlist (`text`) VALUES ('ab astest'), ('ab astestabc'), ('ab as'), ('ablxyx pqr tpl'), ('ab as ablmnr'), ('wasab as ablmnr'), ('vbn ab as abltere') ;
✓ ✓
SELECT DISTINCT SUBSTR(`text`,POSITION("ab as" IN `text`),LENGTH(`text`)) FROM textlist WHERE `text` REGEXP 'ab as[[:blank:]]';
| SUBSTR(`text`,POSITION("ab as" IN `text`),LENGTH(`text`)) | | :------------------------------------------------ -------- | | ab 作为 ablmnr | | ab as abltere |
SELECT DISTINCT SUBSTR(`text`,POSITION("ab as" IN `text`),LENGTH(`text`)) FROM textlist WHERE `text` REGEXP 'ab as[^[:blank:]]';
| SUBSTR(`text`,POSITION("ab as" IN `text`),LENGTH(`text`)) | | :------------------------------------------------ -------- | | ab astest | | ab astestabc |
db<>在这里摆弄
推荐阅读
- pandas - 根据 pandas 中的条件删除重复项
- language-agnostic - 可重构的想法可以应用于软件系统开发吗?
- java - Spring Boot app not connecting to the database specified in application.property for Mongodb
- netsuite - 在高级 pdf/html 中打印图像字段
- android - AndroidRuntime: FATAL EXCEPTION, java.lang.OutOfMemoryError 发送多张图片时
- powerbi - 错误'表达式引用了多个列
- css - Why don't the elements in the navbar darken like the rest of the page when opening modal? (bootstrap)
- python - Intersection from different keys inside Python dictionary
- r - 如何将数据框划分为新的数据框(如新数据1、数据2、数据3 ..等等),以便我可以分析它们中的每一个(如T检验)
- gatsby - 在数组中传递静态查询数据