我是正则表达式和 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
您的正则表达式正在运行,请检查更改:
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