我目前使用此正则表达式来检查列的值是否不是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"], ["[]"]
数组从不嵌套(总是单级)。