1

我有这个字符串。

$string = 'product_posting_list_name_1';

我正在使用它来查找匹配项,但没有找到匹配项。谁能向我解释为什么?我想匹配最后一个下划线和数字。

preg_match('/\bproduct_posting_list_name\b/', $string)
4

2 回答 2

4

_下划线被认为是一个单词字符,它位于您放置的边界\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);
于 2012-05-22T21:53:35.393 回答
0

不是正则表达式,但有效:

$string = 'product_posting_list_name_1';
if (strpos($string, 'product_posting_list_name') === 0) { echo 'found'; }
于 2012-05-22T21:59:59.807 回答