1. php 正則表達式 只能出現一次至少一次
$str='abcdA';
echo'<metacharset="UTF-8">';
if(!sameStr($str,true)){
echo'存在相同字母(不區分大小寫)'.'<br/>';
}else{
echo'不存在相同字母(不區分大小寫)'.'<br/>';
}
if(!sameStr($str)){
echo'存在相同字母(區分大小寫)'.'<br/>';
}else{
echo'不存在相同字母(區分大小寫)'.'<br/>';
}
/**
*@param$str需查找字元串
*@parambool|false$type查找類型:true=>不區分大小寫false=>區分大小寫(默認)
*@returnbooltrue=>不存在相同字母false=>存在相同字母
*/
functionsameStr($str,$type=false){
$rs='/[a-z]/'.($type?'i':'');
preg_match_all($rs,$str,$res);
foreach($res[0]as$val){
$rs="/[$val]/".($type?'i':'');
preg_match_all($rs,$str,$result);
if(count($result[0])>1){
returnfalse;
}
}
returntrue;
}
2. 用PHP正則判斷 只能輸入 中文、韓文、日文、因為(大小寫) 除外的一律禁止的。 有誰可以么
/^[\x{4e00}-\x{9fa5}\x{3130}-\x{318F}\x{0800}-\x{4e00}a-zA-Z]+$/u
別忘了最後那個修正符「 u 」,少了它可不行。
再補充下,要使用這個正則,你的網頁編碼必須是UTF-8,如果是GB2312,那不要想了。
3. php正則表達式截取HTML標簽中的內容
header('content-type:text/html;charset=utf-8');
$str='<li><ahref="/news1397/"title="1827年3月5日義大利物理學家伏打逝世">1827年3月5日義大利物理學家伏打逝世</a></li>
<li><ahref="/news1398/"title="1871年3月5日波蘭女革命家盧森堡誕辰">1871年3月5日波蘭女革命家盧森堡誕辰</a></li>
<li><ahref="/news1399/"title="1886年3月5日董必武誕辰">1886年3月5日董必武誕辰</a>(圖)</li>';
preg_match_all('/<a.*>(.*)</a>/im',$str,$matches);
var_mp($matches[1]);
4. php 正則 去掉所有標調符號,數字 和字母,只留空格分隔的中文
<?php
$str="*/123abcd只留sa";
preg_match_all('/[x{4e00}-x{9fff}]+/u',$str,$matches);
$str=join('',$matches[0]);
echo$str;
?>
輸出「只留」
完善一下,以上適用於UTF8編碼,如果是GBK的則需要轉碼,如下。
<?php
$str="*/123abcd只留sa";
$str=mb_convert_encoding($str,'UTF-8','GB2312');
preg_match_all('/[x{4e00}-x{9fff}]+/u',$str,$matches);
$str=join('',$matches[0]);
echo$str;
?>
5. 幾個php正則表達式結合switch輸出的例子
<?php
header ( "Content-Type: text/html; charset=UTF-8" );
$x = "";
if(!empty($_GET['action'])){
$x = $_GET['action'];
}
switch ($x){
case "email":
$email_address = $_POST["email_address"];
$pattern = "/^([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)$/i";
// $pattern = "/^([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i";
if ( preg_match( $pattern, $email_address ) ){
$reply1 = "您輸入的電子郵件地址合法<br /><br />\n";
$user_name = preg_replace( $pattern ,"$1", $email_address );
$domain_name = preg_replace( $pattern ,"$2", $email_address );
$reply1 .= "用戶名:".$user_name."<br />\n";
$reply1 .= "域名:".$domain_name."<br />\n\n";
}