You need to enable JavaScript to run this app. 如何编写正则匹配指定关键词及后续仅含字母、/、空格的内容
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则匹配指定关键词及后续仅含字母、/、空格的内容

正则匹配问题解决方案

原写法错误点

你的现有正则存在以下问题:

  • 字符集外层多套了一层无效的方括号,且末尾多了冗余的右括号,属于语法错误
  • 没有设置匹配终止逻辑,遇到数字、括号等非法字符不会停止匹配
  • 缺少单词边界限制,可能误匹配到包含关键词的其他长单词(如hardware中的hard)

正确正则

r'\b(qtr|hard|quarter)[a-zA-Z/\s]*'

正则规则说明

  • \b:单词边界,确保匹配的是独立的关键词,不会命中包含关键词的其他单词
  • (qtr|hard|quarter):匹配你指定的三个关键词,配合re.I参数可实现大小写不敏感匹配
  • [a-zA-Z/\s]*:匹配关键词后续0个或多个符合要求的字符,仅允许大小写英文字母、正斜杠、空格,遇到数字、括号、特殊符号时自动终止匹配

完整测试代码

import re

test = [
    'id:12345 cli hard/qtr Mix',
    'id:12345 cli qtr 90%',
    'id:12345 cli hard (red)',
    'id:12345 cli hard work',
    'Hello world'
]

# 编译正则,开启不区分大小写模式
pattern = re.compile(r'\b(qtr|hard|quarter)[a-zA-Z/\s]*', re.I)
res = []
for item in test:
    match_ret = pattern.search(item)
    # 匹配成功则去除首尾多余空格后存入结果,否则存None
    res.append(match_ret.group().strip() if match_ret else None)

print(res)

输出结果

完全匹配你的预期:

['hard/qtr Mix', 'qtr', 'hard', 'hard work', None]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 03:09:04