我有一个消息表。我试图在表中查找具有符合特定格式的 ID 代码的消息。我下面的正则表达式是为匹配 PHP 中的这些值而编写的,但我想将它移到 MySQL 查询中。
它正在寻找一种特定格式的标识符代码,如下所示:
[692370613-3CUWU]
代码具有一致的格式:
- 以硬括号 [ ] 开头和结尾
- 里面有两个组件,
- 第一个是帐号,最少 9 位,但可能更高
- 第二个组件是字母数字代码,5 个字符,可以包括 1-9,以及不包括“O”的大写字母
- 完整的代码可以出现在消息的任何地方
我有一个查询,内容如下:
SELECT * FROM messages
WHERE
msgBody REGEXP '\\[(\d){9,}-([A-NP-Z1-9]){5}\\]'
OR
msgSubject REGEXP '\\[(\d){9,}-([A-NP-Z1-9]){5}\\]'
我在表中创建了一个测试行,它在 msgBody 字段中只有上面的示例值进行测试 - 但它不返回任何结果。
我猜我在 PHP 风格的正则表达式与 MySQL 的转换中遗漏了一些东西。
非常感谢您的帮助。
谢谢!