我正在寻找一个正则表达式,我可以在我的标记器中使用它来编译配置文件。这是 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”应该匹配“foo/bar”而不是“foobar”,“STRING”应该匹配“foobar”而不是“foo/bar”。目前“foobar”和“foo/bar”是“混合”的。
我如何以单一模式写下这个“AND NOT”?
谢谢你。