再想一下,先看看这个能不能用
<?
$A="请您对您的言行负责,遵守中华人民共和国有关法律、法规,尊重网上道德";
$B="·¨ÂÉ";
$C="×ñÊØ";
$D="·¨¹æ";
if (strpos($A,$B) && strpos($A,$C) && strpos($A,$D)) {
print "okkkkkkkkkk";
} else {
print "noooooooooooo";
}$A="请您对您的言行负责,遵守中华人民共和国有关法律、";
if (strpos($A,$B) && strpos($A,$C) && strpos($A,$D)) {
print "okkkkkkkkkk";
} else {
print "noooooooooooo";
}
<?
$A="请您对您的言行负责,遵守中华人民共和国有关法律、法规,尊重网上道德";
$B="·¨ÂÉ";
$C="×ñÊØ";
$D="·¨¹æ";
if (strpos($A,$B) && strpos($A,$C) && strpos($A,$D)) {
print "okkkkkkkkkk";
} else {
print "noooooooooooo";
}$A="请您对您的言行负责,遵守中华人民共和国有关法律、";
if (strpos($A,$B) && strpos($A,$C) && strpos($A,$D)) {
print "okkkkkkkkkk";
} else {
print "noooooooooooo";
}
$A="请您对您的言行负责,遵守中华人民共和国有关法律、法规,尊重网上道德";
$ar = array("法律","遵守","法规");
$p = "/(?:".join("|",$ar).")/";
echo "$p<br>";
preg_match_all($p,$A,$regs);
$o = array_diff($ar,$regs[0]);
if(count($o) == 0)
echo "ok";
?>
当然,你若连出现的次序也需限定的话可以
eregi("法律.*遵守.*法规",$A)
因为正则表达式的各成分件就是“与”关系
expr RLIKE pat
执行一个字符串表达式expr对一个模式pat的模式匹配。模式可以是一个扩充的正则表达式。见MySQL 正则表达式句法的 H 描述.如果expr匹配pat,返回1,否则返回0。RLIKE是REGEXP的一个同义词,提供了与mSQL的兼容性。注意:因为MySQL在字符串中使用C转义语法(例如,“\n”), 你必须在你的REGEXP字符串重复任何“\”。在MySQL3.23.4中,REGEXP对于正常的(不是二进制)字符串是忽略大小写。
mysql> select 'Monty!' REGEXP 'm%y%%';
-> 0
mysql> select 'Monty!' REGEXP '.*';
-> 1
mysql> select 'new*\n*line' REGEXP 'new\\*.\\*line';
-> 1
mysql> select "a" REGEXP "A", "a" REGEXP BINARY "A";
-> 1 0当决定一个字符的类型时,REGEXP和RLIKE使用当前的字符集(缺省为ISO-8859-1 Latin1)。
expr NOT REGEXP pat
expr NOT RLIKE pat
与NOT (expr REGEXP pat)相同。 ------
结帐算分点击右下红底白字的管理
我想问的是如何在mysql中实现像上述问题的多字符串正则“与”查询。
谢谢唠叨兄。
再请教如何在mysql中用regexp实现像上述问题的多字符串正则“与”查询。