Home > Article > Backend Development > 正则纠结中…该如何处理
正则纠结中……
[^\f\n\r\t\v] \S ,是否真的等同?
去掉[^\f\n\r\t\v],$s2中的空格去不了,加上以后,什么都不匹配……
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> function checkString($str){ //去掉非英文以外的其他语言包括乱码、空格。需要英文加特殊符号的内容 if(preg_match("/^ [ [:alnum:] [:space:] [:punct:] [^\f\n\r\t\v]]+ $/x",$str)){ return $str; }else{ echo "含非匹配项"; } } $s1 = "!!!!!!!"; $s2 = "1 1 1 1 1 1 1"; $s3 = "123asd"; echo checkString($s1)."<br>"; echo checkString($s2)."<br>"; echo checkString($s3)."<br>"; /*输出 含非匹配项 含非匹配项 含非匹配项 */
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> if(preg_match("/^( [ [:alnum:] [:space:] [:punct:]]+ )$/x","11111111",$res)){ print_r($res); }else{ echo "含非匹配项"; //输出在这里 }
if(preg_match("/^( [^\s]+ )/x","1 1 1 11111",$res)){ print_r($res); }else{ echo "含非匹配项"; } <br><font color="#e78608">------解决方案--------------------</font><br>你按space键位的那个空格你都没包含进来,恰巧你的串里的空格是space那个,有点晕了吧,呵呵。<br>ascii码<br>--------------<br>space -> 32<br>\n -> 10<br>\t -> 9<br>\f -> 12<br>\r -> 13<br>\v -> 11<br><br> <br><font color="#e78608">------解决方案--------------------</font><br>你加x修正符然后正则里还有空格符,这不是白用x了么?<br>
if(preg_match("/([^ \f\n\r\t\v]+)/","1 2 3 4444",$res)) { print_r($res) } <br><font color="#e78608">------解决方案--------------------</font><br>第一个问题就说你想留下什么吧<br>第二个:
if(preg_match('/(.)\1\1/',$str,$matches)) echo '不能有连续三位相同'; <br><font color="#e78608">------解决方案--------------------</font><br>
$s = "1 2 3 4444"; //过滤空格的正则 echo preg_replace('/\s+/', '', $s);//1234444 //过滤重复字符的正则 echo preg_replace('/(.)\\1+/', '$1', $s);//1 2 3 4 //和在一起 echo preg_replace(array('/(\s+)/', '/(.)\\1+/'), array('', '$1'), $s);//1234 <br><font color="#e78608">------解决方案--------------------</font><br>preg_match_all("/([\s*@#_)-])|((.)\\3+)/", $psw, $r);<br>print_r($r);<br><br><br>Array<br>(<br> [0] => Array<br> (<br> [0] => <br> [1] => <br> [2] => <br> [3] => <br> [4] => 11<br> [5] => <br> [6] => 11<br> [7] => <br> [8] => 11<br> [9] => <br> [10] => * <div class="clear"> </div>