You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python基于re库实现简易搜索引擎And Query查询词提取

简易搜索引擎And查询提取实现

And查询是查询串中既不属于双引号包裹的短语片段、也不属于感叹号引导的排除片段的无特殊标记检索词。
你现有代码已经完成短语查询、非查询的提取,无需改动原有逻辑,只要将原查询串中两类特殊查询对应的片段全部移除,再对剩余内容做切分清洗,就能得到完整的And查询列表。

完整可运行代码

import re

query = input()
# 原有提取逻辑保持不变
phrase_query = re.findall(r'"([^"]*)"', query)
not_query = re.findall(r'!(\w+)', query)

# 提取And查询
# 1. 移除所有带双引号的短语查询片段
processed_str = re.sub(r'"[^"]*"', ' ', query)
# 2. 移除所有带感叹号的非查询片段
processed_str = re.sub(r'!\w+', ' ', processed_str)
# 3. 按空白切分、过滤空值,得到And查询列表
and_query = [term for term in re.split(r'\s+', processed_str.strip()) if term]

print(phrase_query)
print(not_query)
print(and_query)

测试效果

传入示例查询"global warming" worldwide !USA时,输出结果为:

['global warming']
['USA']
['worldwide']

该逻辑兼容复杂查询场景,比如传入"carbon emission" "new energy" china europe !coal !oil,可正确提取:

  • 短语查询:['carbon emission', 'new energy']
  • 非查询:['coal', 'oil']
  • 与查询:['china', 'europe']

如果需要支持带连字符、特殊字符的检索词,只要调整正则中匹配词的规则部分即可,整体处理流程不需要改动。

内容的提问来源于stack exchange,提问作者Alireza Tehrani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:15:58