2011-08-09 30 views
2

我實際上嘗試重新實現組件的某些功能以提供適當的utf-8支持。是否有可能執行全局(迭代)匹配(g修飾符,它在preg_match中是默認設置的)?在mb_ereg_match中執行全局/迭代搜索

$pattern = 'du\@de\.com'; 
$whitespacedDude = ' du \@ de\. com '; 
$globalDude = 'a global [email protected]'; 
$dude  = '[email protected]'; 

var_dump(preg_match("/$pattern/", $globalDude, $matches)); 
var_dump(preg_match("/$whitespacedDude/x", $dude, $matches)); 

var_dump(mb_ereg_match("$pattern", $globalDude)); 
var_dump(mb_ereg_match("$whitespacedDude", $dude, 'x')); 

給出:

true 
true 
false // this one should be true 
true 

其實即時通訊通過mb_ereg_search做一個變通方法來模擬整體匹配。還有其他更好的方法嗎?

謝謝。

回答

1

mb_ereg_match僅從一開始就測試匹配。你需要改變你的模式,並允許任何字符預先:

var_dump(mb_ereg_match(".*$pattern", $globalDude)); 
+0

唉......;)謝謝! – RCKY