私はこの弦を持っています。
$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'; }