首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >regex:除了那些单词之外,如何匹配这些单词?

regex:除了那些单词之外,如何匹配这些单词?
EN

Stack Overflow用户
提问于 2017-01-22 20:59:15
回答 2查看 86关注 0票数 0

我想在正则表达式中匹配一些单词,但不包括其他单词:

例:包含straat、laan、baan的所有单词

代码语言:javascript
复制
(straat|laan|baan)

但不是

代码语言:javascript
复制
(overslaan|bestraat|rubaan)

例如: mystraat bolaan overslaan boobaan rubaan

应匹配

mystraat bolaan boobaan

EN

回答 2

Stack Overflow用户

发布于 2017-01-22 21:48:05

这有点复杂,但可以通过负向回溯来完成。

尝试如下所示:

代码语言:javascript
复制
$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
EN

Stack Overflow用户

发布于 2017-01-22 21:23:52

只需在您的正则表达式前面添加^,并在代码下面添加$以结束检查:

代码语言:javascript
复制
/^[straat|laan|baan]$/
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41791167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档