2012-05-22 158 views
1

我有這個字符串。Preg Match Word

$string = 'product_posting_list_name_1'; 

我正在使用它來查找匹配項,但未找到匹配項。任何人都可以向我解釋爲什麼?我想匹配最後一個下劃線和數字。

preg_match('/\bproduct_posting_list_name\b/', $string) 
+0

我們假設你的字符串是引用...... –

+0

是的,你是正確的。我做了編輯 – Joe

回答

4

_下劃線,is considered to be a word character,這是您通過\b放置的界限,而不是一個邊界本身。您的正則表達式正在查找邊界之間的完整單詞,但邊界發生在_1之後。

要匹配它,您不能在右側使用邊界。

$string = "product_posting_list_name_1"; 
// Replace the right-side \b with a [\d]+ to indicate 1 or more digits, followed by the \b boundary. 
preg_match('/\bproduct_posting_list_name_[\d]+\b/', $string); 
+0

謝謝邁克爾。你有什麼建議,可能會有一個正則表達式101? – Joe

+0

我在www.regular-expressions.info的回答裏面的鏈接是我見過的最好的地方 –

+0

非常感謝:) – Joe

0

不是正則表達式,但工程:

$string = 'product_posting_list_name_1'; 
if (strpos($string, 'product_posting_list_name') === 0) { echo 'found'; }