2011-02-05 105 views
1

這樣做的正確方法是什麼?regexp freebie ...我該怎麼做?

<?php 
$word = 'dogcatdog'; 
preg_match('/do'."[^0-9]".'atdog/i', $word, $matches); 
print_r($matches); 
?> 

我想返回「gc」。

我不斷收到一個錯誤:「未知修飾符」['「。

+0

你能解決你的代碼嗎?目前它會給出語法錯誤。 – NikiC 2011-02-05 00:25:25

+0

請發佈原始碼,您錯過了一個報價或者2. – 2011-02-05 00:25:59

+0

@The Scrum Meister - 發生的報價過多 – ocodo 2011-02-05 00:28:47

回答

4

以及如果兩個狗被周圍的貓,我們可以觀察到的第一件事是,貓將開始發出噓聲了很多,這將產生一個「Hsssss 」。然後這些狗會開始吠叫和咆哮很多,這給了我們一個「Grrr Grrr BARK」。所以一起這將產生像「Hsssss Grrr Grrr Hsssss BARK BARK Hsssss Grrr」。所以,現在,請記住我們希望「gc」作爲我們的最終結果,我們應用以下內容

$word = 'dogcatdog'; 
preg_match("[r]+", $word, $matches); 
preg_match("(BARK)", $word, $matches); 
preg_match("[Hs]+", $word, $matches); 
$matches = "c"; 
preg_match("[G]+", $word, $matchesFinal); 
$matches = $matchesFinal[0] . $matches; 

and presto!

0

我不知道具體的PHP語法,但試試這個:

preg_match('/do([^0-9]+)atdog/i', $word, $matches); 
1
preg_match('/do([a-z]{2})atdog/i', $word, $matches); 

應該得到它,你永遠不會做[^0-9]如果你正在努力尋找gc。這只是要找到任何非數字字符,所以會包括所有標點符號,除了0..9之外的任何其他內容。

當然,如果你真的只是想匹配gc內的字符串,你會的。

preg_match('/do(gc)atdog/i', $word, $matches); 

但是,這似乎毫無意義。

0

試試這個,我糾正你的語法錯誤:

<?php 
$word = 'dogcatdog'; 
preg_match("/do([^0-9]+)atdog/i", $word, $matches); 
print_r($matches); 
?>