我正在解析一个Feed,需要在大小写的任意组合中排除由带有“bad”字样的字符串组成的字段。
例如“bad”或“Bad id”或“user has bAd id”不会传递正则表达式测试,
但“xxx Badlands ddd”或“aaabad”将通过。
答案 0 :(得分:1)
排除符合/\bbad\b/i
\b
匹配字边界,i
修饰符使其不区分大小写。
答案 1 :(得分:0)
对于javascript,你可以把你的单词放在正则表达式中并且匹配\b
代表边界,这意味着没有连接字符:
/\bbad\b/i.test("Badkamer") // i for case-insensitive
答案 2 :(得分:0)
答案 3 :(得分:0)
我认为最简单的方法是将字符串拆分为单词,然后检查每个单词是否匹配,可以使用如下函数完成:
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#中。您没有指定语言