我希望匹配正则表达式中的一些单词,除了其他一些单词:
ex:所有包含straat,laan,baan的单词
(straat|laan|baan)
但不是
(overslaan|bestraat|rubaan)
ex:mystraat bolaan overslaan boobaan rubaan
应匹配
mystraat bolaan boobaan
答案 0 :(得分:1)
这有点复杂,但可以用负面的观察来完成。
尝试这样的事情:
$goodString = "coolbaan";
$badString = "rubaan";
$stringToTest = $goodString;
$regexPattern = '/(.*?)((?<!overs|ru|be)(straat|laan|baan))/';
preg_match($regexPattern, $stringToTest, $matches);
if ($matches) {
// $matches[1] will be the prefix - e.g. ru
// $matches[2] will be the suffix e.g. baan
// $result will be 'rubaan'
$result = "{$matches[1]}{$matches[2]}";
} else {
$result = 'No Match!';
}
echo $result;
答案 1 :(得分:-2)
只需在正则表达式前添加^,然后在$下面结束检查代码:
/^[straat|laan|baan]$/