這樣做的正確方法是什麼?regexp freebie ...我該怎麼做?
<?php
$word = 'dogcatdog';
preg_match('/do'."[^0-9]".'atdog/i', $word, $matches);
print_r($matches);
?>
我想返回「gc」。
我不斷收到一個錯誤:「未知修飾符」['「。
這樣做的正確方法是什麼?regexp freebie ...我該怎麼做?
<?php
$word = 'dogcatdog';
preg_match('/do'."[^0-9]".'atdog/i', $word, $matches);
print_r($matches);
?>
我想返回「gc」。
我不斷收到一個錯誤:「未知修飾符」['「。
以及如果兩個狗被周圍的貓,我們可以觀察到的第一件事是,貓將開始發出噓聲了很多,這將產生一個「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!
我不知道具體的PHP語法,但試試這個:
preg_match('/do([^0-9]+)atdog/i', $word, $matches);
(在例子中的字符串語法錯了。)
如果你想捕捉的東西,你需要附上它在(
要求)
。
preg_match('/do([^0-9]+)atdog/i', $word, $matches);
在這種情況下gc
將出現在$matches[1]
。結果數組始終由捕獲花括號枚舉。
這裏是工具,可以與構建正則表達式幫助一個不錯的名單,有用的上手:https://stackoverflow.com/questions/89718/is-there-anything-like-regexbuddy-in-the-open-source-world
preg_match('/do([a-z]{2})atdog/i', $word, $matches);
應該得到它,你永遠不會做[^0-9]
如果你正在努力尋找gc
。這只是要找到任何非數字字符,所以會包括所有標點符號,除了0..9之外的任何其他內容。
當然,如果你真的只是想匹配gc
內的字符串,你會的。
preg_match('/do(gc)atdog/i', $word, $matches);
但是,這似乎毫無意義。
試試這個,我糾正你的語法錯誤:
<?php
$word = 'dogcatdog';
preg_match("/do([^0-9]+)atdog/i", $word, $matches);
print_r($matches);
?>
你能解決你的代碼嗎?目前它會給出語法錯誤。 – NikiC 2011-02-05 00:25:25
請發佈原始碼,您錯過了一個報價或者2. – 2011-02-05 00:25:59
@The Scrum Meister - 發生的報價過多 – ocodo 2011-02-05 00:28:47