2013-04-25 66 views
-2

如何編寫preg_match,匹配字符串*My*php正則表達式:如何正確轉義字符?

這不起作用:

$ptn = "/\*(.*)\*/"; 
$str = "*My*"; 
preg_match($ptn, $str, $matches); 
print_r($matches); 

,因爲它輸出:代替

Array 
(
    [0] => *My* 
    [1] => *My* 
) 

Array 
(
    [0] => *My* 
    [1] => My 
) 
+0

您的代碼似乎有所需的輸出。 – showdev 2013-04-25 17:17:50

+0

不,有區別。我需要單獨提取「我的」,不包圍「*」。 – camcam 2013-04-25 18:51:27

+0

是的,請查看下面的Marc B的答案。你的代碼似乎是做你想做的。 http://phpfiddle.org/main/code/pgr-asi – showdev 2013-04-25 19:06:04

回答

4

在這裏工作罰款:

php > preg_match('/\*(.*)\*/', '*My*', $matches); 
php > var_dump($matches); 
array(2) { 
    [0]=> 
    string(4) "*My*" 
    [1]=> 
    string(2) "My" 
} 

請記住,$matches數組將總是包含位置0中的整個匹配字符串,然後在槽1+中的個體匹配。

+0

我用[網站](http://www.pagecolumn.com/tool/pregtest.htm)來檢查正則表達式,它似乎是在計算它錯誤。然後, – camcam 2013-04-25 19:12:37

+0

更好地報告該網站的錯誤。 – 2013-04-25 19:14:51

相關問題