Php 匹配不包含坏单词的正则表达式
当主题不包含坏单词时,如何进行预匹配传递?这与此相反:Php 匹配不包含坏单词的正则表达式,php,regex,pcre,Php,Regex,Pcre,当主题不包含坏单词时,如何进行预匹配传递?这与此相反: $pattern = '/\b(some|bad|words)\b/i'; function matches($pattern, $value) { echo "matches $pattern: $value, matches: " . preg_match($pattern, $value)."\n"; } matches($pattern, "This should match"); matches($pattern, "
$pattern = '/\b(some|bad|words)\b/i';
function matches($pattern, $value) {
echo "matches $pattern: $value, matches: " . preg_match($pattern, $value)."\n";
}
matches($pattern, "This should match");
matches($pattern, "This bad string should not match");
到目前为止,我发现的所有例子都是相反的:当主题包含坏单词时,它们匹配
我希望它在不包含坏话时匹配
尝试了多种组合和搜索,但找不到解决方案。使用“?!”使用“\b”似乎是不可能的?您可以使用它
^((?!some|bad|words).)*$
如果(!preg_match(…)
-简单。我们有一个用PHP编写的4GL工具,它允许指定一个“validationPattern”属性,在该属性中我们无法反转结果。无论如何,谢谢你的建议。使用匹配功能的唯一原因是实际匹配某些内容。如果你不想匹配一些单词,那么,你想匹配哪些单词?谢谢你的反应。这实际上也匹配了部分单词,比如某天或糟糕。这个模式就是解决方案(基于“标记为重复”问题中的答案):/^(?(?!\b(一些不好的词)\b)。*$/i
@keesvanderen您的正则表达式将匹配o'some代码>使用空格
代替\b
^((?!\b(some|bad|words)\b).)*$