2012-11-13 57 views
4

我想查找某些部分的評論。下面是一些例子preg_match評論的某些部分

/* 
* @todo name another-name taskID 
*/ 

/* @todo name another-name taskID */ 

目前使用的即時通訊以下正則表達式

'/\*[[:space:]]*([email protected](.*))/i' 

這將返回如下:

* @todo name another-name taskID 
or 
* @todo name another-name taskID */ 

我如何才能得到公正@todo和名稱,但沒有任何星號?

所需的輸出

@todo name another-name taskID 
@todo name another-name taskID 

回答

1

試試這個:

$str=<<<STR 
/* 
* @todo name another-name taskID 1 
*/ 

/* @todo name another-name taskID 2 */ 
STR; 
$match=null; 
preg_match_all("/\*[[:space:]]*(@todo[^(\*\/$)]*)/i",$str,$match,PREG_SET_ORDER); 
print_r($match); 

回聲

Array 
(
    [0] => Array 
     (
      [0] => * @todo name another-name taskID 1 

      [1] => @todo name another-name taskID 1 

     ) 

    [1] => Array 
     (
      [0] => * @todo name another-name taskID 2 
      [1] => @todo name another-name taskID 2 
     ) 

) 

不是一個完美的解決方案(注意行結束在$match[0][0])雖然。

+0

有沒有辦法,我可以忽略第一個astrick標誌?沒有刪除檢查 – Basit

+0

@Basit這就是爲什麼我使用捕獲。你可以看到'$ match [*] [1]'都是'@todo .....'。 – Passerby

+0

謝謝你soo :) – Basit