preg_match 无法处理最后两个字符

preg_match not working on last two charcters

我拿到了他的小码

 <?php  
    if (preg_match("/Remanufactured|REMANUFACTURED/",$product_info['products_description'] ) 
|| preg_match("/N2|N3|W1|W2|A1|A2|A3|R4/",$product_info['manufacturers_code'])) {
    echo "Refurbished";
   } else  {         
  echo "New Boxed"; 
 }
?>      

if $product_info['manufacturers_code'] = '2122586R4' 或 'MC-MCB43112U0C2/04/1' 以上代码有效。

我希望上面的代码只匹配最后两个字符是“/N2|N3|W1|W2|A1|A2|A3|R4/”的地方

我已经尝试过“/N2$|N3$|W1$|W2$|A1$|A2$|A3$|R4$/”,但它不起作用。

问候

伊尔凡

替换

/N2|N3|W1|W2|A1|A2|A3|R4/

/^(.*)(N2|N3|W1|W2|A1|A2|A3|R4)$/

.* 将匹配开头的任意字符串和结尾指定的两个字符串

试试这个

preg_match('/(N2|N3|W1|W2|A1|A2|A3|R4)$/',$product_info['manufacturers_code'])

( ) - 将一系列图案元素分组为单个元素。

| - 分隔备选可能性。

$ - 匹配行或字符串的结尾。

所以“(a|b)”表示“a or b”。 “(a|b)$”表示行或字符串末尾的“a or b”。