我有这个字符串。
$string = 'product_posting_list_name_1';
我正在使用它来查找匹配项,但没有找到匹配项。谁能向我解释为什么?我想匹配最后一个下划线和数字。
preg_match('/\bproduct_posting_list_name\b/', $string)
我有这个字符串。
$string = 'product_posting_list_name_1';
我正在使用它来查找匹配项,但没有找到匹配项。谁能向我解释为什么?我想匹配最后一个下划线和数字。
preg_match('/\bproduct_posting_list_name\b/', $string)
_
下划线被认为是一个单词字符,它位于您放置的边界内\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);
不是正则表达式,但有效:
$string = 'product_posting_list_name_1';
if (strpos($string, 'product_posting_list_name') === 0) { echo 'found'; }