我需要(不幸的是它必须在数据库级别 - 实际上是MariaDB)来使用规则来验证使用正则表达式数字,该规则必须由至少4个唯一数字组成.
我需要完成的示例:
112233441122 is OK (made only from 1,2,3,4) 1234564222134 is OK (6 different digits) 122102111 is bad (3 digits only: 0,1,2) 91511201 is OK (5 digits)
我很乐意分享我的尝试,但现在我的反馈很不好,而且我的任何微不足道的尝试都没有更接近匹配甚至由两个不同角色组成的单词.我还尝试过用户定义的函数来计算字符串中的字符数,但它们很慢并且不如使用REGEX那么优雅.
我有关联数组与包含数据的数据库的结果,如下面的结构:
$arr[0] = Array("id"=>4, "otherdata"=>"something");
$arr[1] = Array("id"=>6, "otherdata"=>"something else");
$arr[2] = Array("id"=>15, "otherdata"=>"something totally different");
Run Code Online (Sandbox Code Playgroud)
我想破坏id
每个$arr
条目中只有键的数据,以便最终内爆的字符串4,6,15
(粘合,
).
现在我有一些解决方案:
但他们俩都不高兴.
有没有其他简单的方法来达到预期的效果?
我一直在研究C++的未定义行为示例,我发现了以下一个:
int a = 0;
a = a++;
Run Code Online (Sandbox Code Playgroud)
尝试了它,g++ -Wall -Wextra
它让我警告序列点.
但后来我考虑使用参考的另一种情况:
int a = 0;
int &b = a;
b = a++;
Run Code Online (Sandbox Code Playgroud)
关于序列点,我没有对此大喊大叫.它似乎应该是显而易见的.是否有任何好的解释为什么这两个例子被编译器区别对待?