MySQL Regex检查值是否不是UUID-s数组

时间:2015-03-17 13:50:45

标签: mysql regex

我目前使用此正则表达式来检查列的值是否不是UUID:

'WHERE Answer.value NOT REGEXP "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"'

但是,因为我不擅长使用Regex-es,所以我偶然发现了检测JSON编码数组的问题,该数组包含至少一个不是UUID的元素。有关这个的任何帮助吗?

我的建议:

"WHERE Answer.value NOT REGEXP '\[(\"[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\"(\,)?)*\]'"

但在我在一个难以检测错误的庞大系统中对此进行测试之前,我很乐意收到您的反馈。

看起来OK at the first glance,但也许有些问题我现在无法看到。

它应匹配例如以下数组:

[], ["UUID1"], ["UUID1", "UUID2"]

但不是以下几个:

["Cat"], ["UUID1", "Dog"], ["[]"]

数组从不嵌套(总是单级)。

0 个答案:

没有答案