$matchstring = 'MS-DOS file';
$string1 = 'MS-DOS file';
$string2 = 'MS-DOS file, NE Windows';
$string3 = 'MS-DOS file, MZ OS-windows';
$string4 = 'MS-DOS file, Clear OS-windows';
我正在编写正则表达式,以便将上述字符串中的字符串“MS-DOS文件”用于匹配$string1
和$string4
。该模式不应与'MS-DOS文件'匹配,后面跟着关键字'NE'或'MZ'。对于其他它应该匹配它应匹配字符串4但不匹配字符串2,3
有什么想法吗?
我用可怜的正则表达式尝试了这个但没有运气:(
if (preg_match("/MS-DOS file[\s]?[^MZ][^NE]/", $string1)){
echo "True";
} else{
echo "False";
}
答案 0 :(得分:3)
试试这个:
"/MS-DOS file(?:,\s|$)(?!MZ|NE).*/"
你忽略了逗号并误用了字符集方括号。
编辑:另外,我相信你想检查'NE',而不是'NI'。