基于字符的阿拉伯语搜索参数需要在MySQL中进行匹配的正则表达式

问题描述 投票:0回答:1

让我们说表中的单词是:

  • ab astest
  • ab astestabc
  • ab as
  • ablxyx pqr tpl
  • ab as ablmnr
  • wasab as ablmnr
  • vbn abtere abtere

我需要匹配起始单词应该在哪里:“ ab as”(包括空格),然后是无穷大(即n个组合或字符的数目)

结果应在2个过滤器下查看:

1)包含空格:以“ ab as”和任何数字开头。附加的单词或字符

结果:


ab as ablxyx pqr tpl

ab as ablmnr

2)排除空格:以“ ab as”和任何数字开头。此字符串附加的字符和单词的数量,不带空格

结果:


ab astest

ab astestabc

结果应该是互斥的。

任何人都可以与我共享Mysql REGEX表达式吗?

mysql regex regex-lookarounds regex-group
1个回答
0
投票

您可以为此使用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 asbtere |
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 astestabc |

db <>小提琴here

© www.soinside.com 2019 - 2024. All rights reserved.