php中文正則
㈠ php中文正則表達式
preg_replace("/[^a-z\(0-9\)\x4e00-\x9fa5]+/ig", "", $data);
但你要保證輸入的中文是Unicode, 不是全形的gb2312; 否則不能成功
㈡ php怎麼將中文利用正則表達式匹配出來
正則匹配中文漢字根據頁面編碼不同而略有區別:
GBK/GB2312編碼:[x80-xff]+ 或 [xa1-xff]+
UTF-8編碼:[x{4e00}-x{9fa5}]+/u
$str="賬單123";
//GBK/GB2312使用:
preg_match_all("/[x80-xff]+/",$str,$chinese);
//UTF-8使用:
//preg_match_all("/[x{4e00}-x{9fa5}]+/u",$str,$chinese);
print_r($chinese);
閣下所說的亂碼應該就是編碼沒弄對了
㈢ PHP正則匹配中文
在PHP里,包含數字、字母、下劃線或中文的正則表達式如下:$pattern = "/[0-9a-zA-Z_\x80-\ff]+/";
㈣ PHP正則表達式驗證是否含有中文
判斷是否有中文。
if (preg_match("/[\x7f-\xff]/", $string)) { echo "true"; }else{ echo "false"; }判斷是否全部是中文
//if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在GB2312情況下使用 if (preg_match("/^[\x7f-\xff]+$/", $str)) { //兼容gb2312,utf-8
echo "true";
} else {
echo "false";
}
判斷中文和編碼有關 gbk是雙位元組,utf8是三位元組,可以根據中文的范圍來判斷
編碼范圍1. GBK (GB2312/GB18030)
/x00-/xff GBK雙位元組編碼范圍
/x20-/x7f ASCII
/xa1-/xff 中文
/x80-/xff 中文
2. UTF-8 (Unicode)
/一-/龥 (中文)
/x3130-/x318F (韓文
/xAC00-/xD7A3 (韓文)
/u0800-/一 (日文)
ps: 韓文是大於[/龥]的字元
正則例子:
preg_replace("/([/x80-/xff])/","",$str);
preg_replace("/([一-龥])/","",$str);
希望可以採納,謝謝。
㈤ PHP的正則表達式中使用中文(並匹配中文)的問題,原串為UTF8
<?php
$str = "中國勢力是(煙消雲散、再轉在、匣介)中國、類別置頂帖(來哦見好就收)、炒肉可示、需要城";
$preg2 = "/中國/sim" ;
preg_match_all($preg2, $str, $strResult, PREG_PATTERN_ORDER);
print_r($strResult);
?>
我的PHP文件是UTF-8編碼,不知道你的$str是從哪裡得到的呢?像上面一樣,我直接給$str賦值,這樣使用 /中國/sim 這個表達式沒有任何問題,會不會是你$str字元串的編碼與頁面編碼不一致呢?
㈥ php正則判斷字元串是否含有中文
functionchk_cn($str){
if(preg_match('|[x{4e00}-x{9fa5}]+?|u',$str)){
returntrue;
}
returnfalse;
}
調用這個 函數,返回true則是含有中文,false則無中文。
另外,x{4e00}-x{9fa5} 這個范圍我也不太確定是不是包含所有的中文范圍,沒有認真研究它的取值范圍。
㈦ PHP正則表達式中怎麼匹配漢字啊 - 技術問答
匹配中文字元的正則表達式:
[\\u4e00-\\u9fa5]匹配雙位元組字元(包括漢字在內):[^\\x00-\\xff]應用:計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1)String.prototype.len=function(){return
this.replace([^\\x00-\\xff]/g,\"aa\").length;}匹配空行的正則表達式:\\n[\\s|
]*\\r匹配HTML標記的正則表達式:/.*|/匹配首尾空格的正則表達式:(^\\s*)|(\\s*$)
㈧ php正則表達式匹配一段中文,中間有換行,空白,應該怎麼寫
有多種處理方法:
1、使用[sS]匹配任意字元,而不是使用「.」
2、使用s單行修飾模式,例:$pattern='#abc.*?def#s';//能匹配abc換行def
3、使用s*匹配換行和空格,php里s能匹配空白字元,含換行
php里的中文使用[x7f-xff]表示,因此,使用正則:
$pattern='#[x7f-xff]+(?:s*[x7f-xff]+)*#';即可
㈨ PHP正則提取中文部分內容,怎麼實現呀
中文可以用正則表達式進行匹配,但是具體匹配方法與中文的編碼方式有關:
如果是GBK(GB2312、GB1080),那麼中文的編碼范圍是:
x80-xff
如果是UTF-8編碼,那麼中文的編碼范圍是:
u4e00-u9fa5
那麼匹配漢字的正則表達式可以是:
/[x7f-xff]+/
或者
/[u4e00-u9fa5]+/
例子代碼,顯示文件中的所有漢字(GBK編碼):
<?php
$s=file_get_contents('1.txt');
if(preg_match_all('/[x7f-xff]+/',$s,$r)){
for($i=1;$i<count($r[0]);$i++)echo"$i ".$r[0][$i]." ";
}
?>
㈩ php中如何用正則表達式匹配中文字元呢
php中匹配一個或多個中文字元(包含簡體和繁體中文字元)的正則表達式如下:/[[b]\x{4e00}-\x{9fa5}]+/注意:php中正則表達式的16進制是以
\x
開頭的。