PHP反转/否定Regex模式


PHP Invert/Negate Regex Pattern

我有下面的字符串,我正试图使用正则表达式对任何与12c版本号不匹配的内容执行preg_replace

你可以看到工作匹配

我使用的表达式与12c字符串格式匹配,但我似乎不知道如何或是否可以反转/否定正则表达式匹配,所以不替换12c,而是替换除12c之外的所有内容,这样preg_match函数只返回11g等中的12c。

代码:

preg_match('/('s[0-9]{2}[a-z]{1}'s)/', '', 'Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit Production with the Partitioning, OLAP, Data Mining and Real Application Testing option');

模式:

/('s[0-9]{2}[a-z]{1}'s)/ 

字符串:

Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit Production with the Partitioning, OLAP, Data Mining and Real Application Testing option

如果我理解正确,你想得到与模式匹配的文本:

if (preg_match('/([0-9]{2}[a-z]{1})/', 'Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit Production with the Partitioning, OLAP, Data Mining and Real Application Testing option', $m))
  echo $m[1]; // 12c