如何检测字符串中任意单词是否与给定列表内单词匹配
字符串列表匹配检测实现方案
核心检测规则:判断目标字符串中是否存在任意片段与给定匹配列表中的单词相匹配,只要命中任意一个即返回true,全部未命中返回false。
参考示例逻辑:目标字符串
string = "I Like To Play Football"中Football包含匹配列表list = [Car,Ball,Door,Sky]里的Ball片段,因此检测结果返回true。
通用实现步骤
- 遍历匹配列表中的每一个待匹配关键词
- 逐个校验当前关键词是否存在于目标字符串中
- 一旦检测到命中的关键词,立刻终止遍历返回
true;所有关键词校验完成仍无命中则返回false
常见语言代码实现
Python 版本
# 初始化示例变量 string = "I Like To Play Football" list = ["Car", "Ball", "Door", "Sky"] def check_match(target: str, keywords: list) -> bool: for kw in keywords: if kw in target: return True return False # 执行检测,返回结果为True res = check_match(string, list)
JavaScript 版本
// 初始化示例变量 const string = "I Like To Play Football"; const list = ["Car", "Ball", "Door", "Sky"]; const checkMatch = (target, keywords) => keywords.some(kw => target.includes(kw)); // 执行检测,返回结果为true const res = checkMatch(string, list);
可选规则调整
如果需要实现整单词精确匹配(即子串命中不算,必须是独立存在的完整单词才算匹配),只需要先把目标字符串按空格切分为独立单词集合再做比对即可,以Python为例:
string = "I Like To Play Football" list = ["Car", "Ball", "Door", "Sky"] def check_whole_word_match(target: str, keywords: list) -> bool: word_set = set(target.split()) for kw in keywords: if kw in word_set: return True return False # 该规则下示例返回False,因为Ball不是独立存在的单词 res = check_whole_word_match(string, list)
内容的提问来源于stack exchange,提问作者Mohammad Aboul-Ela
相关产品推荐
相关产品推荐

