0
$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. 该模式不应与后跟关键字“NE”或“MZ”的“MS-DOS 文件”匹配。对于其他它应该匹配,就像它应该匹配字符串 4 但不匹配字符串 2,3

有任何想法吗 ?

我用我可怜的正则表达式试过这个,但没有运气:(

if (preg_match("/MS-DOS file[\s]?[^MZ][^NE]/", $string1)){
    echo "True";
} else{
    echo "False";
}
4

1 回答 1

3

尝试这个:

"/MS-DOS file(?:,\s|$)(?!MZ|NE).*/"

您忽略了逗号并滥用了字符集方括号。

编辑:另外,我相信你想检查'NE',而不是'NI'。

于 2012-10-23T06:57:54.057 回答