⑴ php 如何取出一段字元串里的全形符號 詳細如下
取出一段字元串里的全形符號.幹嘛?
可以過濾之前取得啊,然後在處理嘛
說詳細點兒。
⑵ 有關php 正則表達式替換的問題
$str = "哈哈@abc,@中國,@中國china,另一個哈哈@結尾沒有逗號的";
$pattern = "/(@([^,,]+))([,,]?)|(@(.+))$/i"; //匹配以全形逗號或者半形逗號或者是串尾的
$replacement = '<a href="/id/$2">$1</a>$3';
$str = preg_replace($pattern, $replacement, $str);
echo $str;
⑶ PHP里要將一段數據里中文間的逗號換成全形的,應該如何做
function 一個方法。
例如
$str 要轉換的字元串
function phpstrtr ($str){
$tr=array(
','=>',');
return strtr($str, $tr);
}
⑷ PHP中字元串正則式處理:去除字元串末尾的若干個空格
查找:[\u0026-\u002f\u003a\u003b]
替換為空
原理:&的ascii為0x26,其至0x2f之間都是符號,0x30~0x39是數字0~9,0x3a和0x3b是符號,分號是0x3b,所以,你描述的符號就是兩個連續區間,後一個區間只有兩個字元,總體上也可表示為一個連續字元區間和兩個散點字元,如上即是。
⑸ 請問 php 正則中的這些是什麼編碼呢
一:[\x81-\xfe]格式的正則:
$s=preg_replace('/^([\x81-\xfe][\x40-\xfe])*/','0',$neirong); 這裡面的大多是日韓文字
二:x{4e00}格式的正則:
preg_match("/^[\x{4e00}-\x{9fa5}]{1,4}/u",$str); 這裡面是匹配中文;
——————————————————————————
這些字元集尤其是日文字元集的各種字、標點以及特殊符號的時候有所幫助。
UTF8
[\x01-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}
UTF16
[\x00-\xd7][\xe0-\xff]|[\xd8-\xdf][\x00-\xff]{2}
JIS
[\x20-\x7e]|[\x21-\x5f]|[\x21-\x7e]{2}
SJIS
[\x20-\x7e]|[\xa1-\xdf]|([\x81-\x9f]|[\xe0-\xef])([\x40-\x7e]|[\x80-\xfc])
EUC_JP
[\x20-\x7e]|\x81[\xa1-\xdf]|[\xa1-\xfe][\xa1-\xfe]|\x8f[\xa1-\xfe]{2}
EUC_JP標點符號及特殊字元
[\xa1-\xa2][\xa0-\xfe]
EUC_JP全形數字
\xa3[\xb0-\xb9]
EUC_JP全形大寫英文
\xa3[\xc1-\xda]
EUC_JP全形小寫英文
\xa3[\xe1-\xfa]
EUC_JP全形平假名
\xa4[\xa1-\xf3]
EUC_JP全形片假名 [color=Red]2007-03-12 15:00更新[/color]
\xa3[\xb0-\xb9]|\xa3[\xc1-\xda]|\xa5[\xa1-\xf6][\xa3][\xb0-\xfa]|[\xa1][\xbc-\xbe]|[\xa1][\xdd]
EUC_JP全形漢字 [color=Red]2007-03-12 15:06更新[/color]
[\xb0-\xcf][\xa0-\xd3]|[\xd0-\xf4][\xa0-\xfe]|[\xB0-\xF3][\xA1-\xFE]|[\xF4][\xA1-\xA6]|[\xA4][\xA1-\xF3]|[\xA5][\xA1-\xF6]|[\xA1][\xBC-\xBE]
Big5
[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|[\xa1-\xfe])
GBK
[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]
GB2312漢字
[\xb0-\xf7][\xa0-\xfe]
GB2312半形標點符號及特殊符號
\xa1[\xa2-\xfe]
GB2312羅馬數組及項目序號
\xa2([\xa1-\xaa]|[\xb1-\xbf]|[\xc0-\xdf]|[\xe0-\xe2]|[\xe5-\xee]|[\xf1-\xfc])
GB2312全形標點及全形字母
\xa3[\xa1-\xfe]
GB2312日文平假名
\xa4[\xa1-\xf3]
GB2312日文片假名
\xa5[\xa1-\xf6]
補充:
GB18030
[\x00-\x7f]|[\x81-\xfe][\x40-\xfe]|[\x81-\xfe][\x30-\x39][\x81-\xfe][\x30-\x39]
[color=Red]2007-03-12 21:35 補充[/color]
日文半形空格
\x20
SJIS全形空格
(?:\x81\x81)
SJIS全形數字
(?:\x82[\x4f-\x58])
SJIS全形大寫英文
(?:\x82[\x60-\x79])
SJIS全形小寫英文
(?:\x82[\x81-\x9a])
SJIS全形平假名
(?:\x82[\x9f-\xf1])
SJIS全形平假名擴展
(?:\x82[\x9f-\xf1]|\x81[\x4a\x4b\x54\x55])
SJIS全形片假名
(?:\x83[\x40-\x96])
SJIS全形片假名擴展
(?:\x83[\x40-\x96]|\x81[\x45\x5b\x52\x53])
EUC_JP全形空格
(?:\xa1\xa1)
EUC半形片假名
(?:\x8e[\xa6-\xdf])
——————————————————————————
下面是utf-8編碼的例子:
$str = "漢字";
if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {
print("該字元串全部是中文");
} else {
print("該字元串不全部是中文");
}
下面的例子包含gbk,gb2312的例子:
<?php
$action = trim($_GET['action']);
if($action == "sub")
{
$str = $_POST['dir'];
//if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312漢字字母數字下劃線正則表達式
if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str)) //UTF-8漢字字母數字下劃線正則表達式
{
echo "<font color=red>您輸入的[".$str."]含有違法字元</font>";
}
else
{
echo "<font color=green>您輸入的[".$str."]完全合法,通過!</font>";
}
}
?>
⑹ php如何判斷是字元串全形還是半形
第一步:新建程序
使用Dreamweaver或記事本新建一個PHP程序,這是所有開發必須經過的開始,然後輸入測試段代碼(Hello World!),並運行。
第二步:輸入英文分號並運行
為了便於後面的比較,在編輯器新增一個<div>標簽並做對齊,輸入文字:我是英文PHP的分號(;),並在瀏覽器中運行
第三步:對比輸入中文分號再運行
接著輸入一段文字,我是中文PHP的分號(;),在瀏覽器中運行,並作比較,中文分號比英文分號更大更寬
第四步:輸入英文半形並運行
在編輯器中新增一個<div>標簽,輸入文字:我是PHP的半形寫法:php,並運行,並記錄
第五步:全半形及中英文切換
很多非專業的人不會切換全半形,切換全半形方式為Shift+Space鍵盤,也可以點擊輸入法切換
第六步:輸入英文全形再運行
同理,在編輯器中輸入文字:我是PHP全形寫法:php,並運行,比較全半形的區別(註:全形只在英文小寫字母才有作用),全形字元寬度明顯大於半形。
第七步:對比全形和半形
全形字元佔位大於半形。
第八步:對比中文和英文
英文符號再大小以及佔位寬度比中文符號小
⑺ 正則表達式如何匹配全形數字並替換
[\uFF10-\uFF19]
這個能匹配全形0~9的數字
對應的
你如果要替換
估計要0-9一個個來
或者自己寫邏輯循環
\uFF10對應全形1 單個個正則 [\uFF10]
\uFF11對應全形2 單個個正則 [\uFF11]
...
\uFF19
以此類推
其實不管80還是09還是008 009
你只要匹配到的單個數字都轉成半形自然什麼都解決了
方法告訴你了
其他的自己去完成吧
⑻ 求PHP正則表達式,匹配[所有標點符號|數字|大小寫字母|其他在書名上應該橫過來的字元]
你的意思是只要漢字嗎? 你說的也不是很清楚 猜猜應該是只要漢字吧
preg_match("/^[\u4e00-\u9fa5]+$/",$str)) //utf8編碼
⑼ php 正則替換 全、半形空格和全形逗號替換為半形逗號
/,|\s/ig 這個是正則,正則只是做查找功能而已,沒替換,你替換要用你自己的語言替換。例如:你的是java,str.replaceAll(",|\\s",",");
⑽ PHP中,一串UTF8中文字元,要將其中的全形問號替換為空,正則表達式應該怎麼寫
這種簡單的替換用不著正則表達式,可以用字元串替換函數
str_replace('?','',$str);