2017-03-14 40 views
-1

我想通過正則表達式搜索一些字符串。字符串看起來像這樣search/b/109/p/93正則表達式不起作用。總是假回報。 PHP

我想這樣的事情,但它返回false

preg_match('search/b/[0-9]+/p/*', $string); 

這給了我false即使字符串是search/b/109/p/93

+0

嘗試https://regex101.com/ – Pete

+1

如果沒有找到匹配的preg_match返回一個0,它只返回假,當你的正則表達式不正確。你定義了例如沒有分隔符 –

+3

還有什麼是'/ *',你的意思是'/.*'? – xander

回答

4

您必須添加在您的正則表達式一些delimiters#在我的例子):

preg_match('#search/b/[0-9]+/p/*#i', $string); 
+0

謝謝,它的工作原理:) –

0

嘗試:

search\/b\/[0-9]+\/p\/* 

這逸出斜槓。

所以在PHP代碼是:當使用

preg_match('/search\/b\/[0-9]+\/p\/*/',$string); 

這將返回1:search/b/109/p/93$string

+0

@ chris85 This works too right?這種方法有什麼問題? – Loko

+0

@ chris85我會刪除那部分。儘管如此,這仍然是一種替代方案。 – Loko

0

你應該用括號來獲取變量。

search/b/([0-9]+)/p/([0-9]+) 

好2個變量

search/b/[0-9]+/p/([0-9]+) 

的最後一個僅