在mysql中使用正则表达式来匹配字符串的混乱

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

我是正则表达式和 mysql 的新手,但我正在尝试匹配以下内容:

SELECT 'abc: bcd' REGEXP '(abc):?\s?b'

这似乎可以在几个在线浏览器正则表达式模拟器中工作,但不能在 mysql 中工作。 我找不到任何类似的问题,但我可能缺少正确的关键字来找到我的答案 任何帮助将不胜感激!

SELECT 'abc: bcd' REGEXP '(abc):?\s?'

这似乎可以在没有最后一个“b”的情况下工作,但我想在这部分后面指定一个单词来查找

使用 https://regexr.com/ 进行测试 和https://www.regextester.com/112633 使用/.../ig

mysql regex mysql-workbench
1个回答
0
投票

您的正则表达式正在运行,请检查更改:

SELECT ('abc: bcd' REGEXP '(abc):?\\s?b') as match_regex;

SELECT ('abc: bcd' REGEXP '(abc):?\\s?') as match_regex;

更好的解决方案:

-- basic matching
SELECT ('abc: bcd' REGEXP '\\w{3}\:\\s*\\w{3}') as match_regex;

-- Regex lookahead & lookbehind 
SELECT ('abc: bcd' REGEXP '(?<=\\w{3})\:\\s*(?=\\w{3})') as match_regex;

示例代码:db<>fiddle

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