正则表达式,如果字符串中没有单词"bad",则为 true



我正在解析一个提要,需要排除包含单词"bad"的字符串的字段,在任何情况下的组合。

例如"bad"或"bad id"或"user has bad id"将不能通过正则表达式测试,

但是 "xxx Badlands ddd"或"aaabad" 会通过

对于javascript,您可以将单词放入正则表达式中,并对边界进行匹配b标准,这意味着没有字符连接:

/bbadb/i.test("Badkamer") // i for case-insensitive

你可以试试这个regex:

^(.*?(bbadb)[^$]*)$

REGEX演示

我认为最简单的方法是将字符串分成单词,然后检查每个单词是否匹配,它可以用这样的函数来完成:

    private bool containsWord(string searchstring, string matchstring)
    {
        bool hasWord = false;
        string[] words = searchstring.split(new Char[] { ' ' });
        foreach (string word in words)
        {
            if (word.ToLower() == matchstring.ToLower())
                hasWord = true;
        }
        return hasWord;
    }

代码将所有内容转换为小写以忽略任何大小写不匹配。我认为你也可以使用RegEx:

static bool ExactMatch(string input, string match)
{
    return Regex.IsMatch(input.ToLower(), string.Format(@"b{0}b", Regex.Escape(match.ToLower())));
}
据我所知,

b是一个字边界字符。这些例子都是用c#编写的。您没有指定语言

最新更新