2014-03-24 21 views
0

正則表達式的字符串我是新來的正則表達式,因此,我通過PHP手冊了對正則表達式,並試圖在下面:找到在PHP

我有一個這樣的字符串:

c-1

c-10

c-100等高達c-unlimited

現在我想確認日未來的E弦是用c-開始,c-後僅包含數字的有效字符串..

得到這個工作我已經使用preg_match

$slug='c-12'; 

if(preg_match("/\[c-(.*?)]/",$slug,$result)){ echo "TRUE";} 
else{ echo "FALSE"; } 

也這樣:

$pattern = '/^c-/'; 
if(preg_match($pattern, substr($slug,2), $matches, PREG_OFFSET_CAPTURE){ echo "TRUE";} 
else{ echo "FALSE"; } 

和此外:

$pattern = '/^c-/'; 
if(preg_match($pattern, $slug, $matches, PREG_OFFSET_CAPTURE, 3){ echo "TRUE";} 
else{ echo "FALSE"; } 

and on另外我還想從最後驗證字符串。如下圖所示:

$slug="my-string-content-123"; 

在這裏,我想驗證字符串包含後-

例如123

在最後的數字,但我無法得到它的工作...我很對不起我的英文不好..

任何幫助或寶貴意見將是一個很大的幫助。在此先感謝..

+0

我有一個偷偷摸摸的疑問,這兩個答案都會給你帶來意想不到的結果..也許這會很好,如果你更好地定義什麼「c」或「我的字符串內容」實際上可以是 –

+0

只有兩種情況..第一個'c'的情況,第二個是'any-string-but-number-at-end-like-this-123' –

+0

好的,如果「任何字符串」*真*表示*任何*然後好的,我猜你'重啓。所以我猜''* $($#safdsfsf \ t \ tfoo \ t \ n $&^ @#\ t \ n-123「'(\ t == tab \ n == newline)很好,是的? –

回答

2

對於普通(不只是c-)的情況下:

$slug="my-string-content-123"; 
if(preg_match('/([^0-9]+)-([0-9]+)$/', $slug, $matches)) 
{ 
    //prefix is in $matches[1]; 
    //the number is in $matches[2]; 
} 
+0

先生非常感謝你..像魅力.. –

1

嘗試THI S:

preg_match("/^c-\d+$/",$slug,$result); 

^c- =開始c-

\d+ = 1或多個數字

$ =串的端

+0

先生。非常感謝。作品像魅力..當案件是'c-' –