トークナイザーで構成ファイルをコンパイルするために使用できる正規表現を探しています。これがphpのクラスからの抜粋です:
private $token = array(
"PATH" => "([a-zA-Z\_-]+\.|\*\.)+([a-zA-Z\_-]+|\*)",
"MIXED" => "[a-zA-Z0-9-_\(\)\/]{2,}",
"STRING" => "[a-zA-Z-_]{2,}"
);
private function getToken($string) {
foreach($this->token as $name => $pattern) {
preg_match("/^".$pattern."/", $string, $match);
if(!empty($match))
return array($name, $match[0]);
}
return false;
}
「MIXED」は「foobar」ではなく「foo/bar」と一致する必要があり、「STRING」は「foo/bar」ではなく「foobar」と一致する必要があります。現在、「foobar」と「foo/bar」は「MIXED」です。
この「ANDNOT」を単一のパターンで書き留めるにはどうすればよいですか?
ありがとうございました。