2011-08-22 51 views

回答

0

我無法測試出你的第二個問題,因爲我沒有在我面前PHP環境,但回答的第一個問題是沒有。如果您只處理ASCII字符,則不需要/u

1

這不是模式是否包含utf字符,而是您要匹配的字符串是否。您可能不會查找非ASCII字符,但如果字符串中有任何多字節字符,則您的模式可以與UTF字符中的「額外」字節之一匹配。

+0

雖然多字節序列不包含任何字節的任何7位ASCII代碼,但它不是UTF-8的一點嗎?因此,如果正則表達式引擎是8位清理的,那麼無論多字節內容如何,​​在UTF-8編碼的字符串中都不會匹配ASCII字符仍然可以。畢竟,所有的多字節UTF-8序列都具有始終設置第一位的字節。 –

0

接招例如一個字符串匹配/^.$/

var_dump(preg_match('/^.$/u','族')); 
var_dump(preg_match('/^.$/','族')); 

結果:

int(1) 
int(0) 

所以,是的/ U確實有差別,甚至當你在你的模式沒有ASCII表之外的字符。

相關問題