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).*/"

カンマを見落とし、文字セットの角括弧を誤用していました。

編集:また、「NI」ではなく「NE」をチェックしたいと思います。

于 2012-10-23T06:57:54.057 に答える