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

如何编写正则表达式匹配包含指定字符范围全部字符的字符串

正则表达式匹配方案

你需要的正则写法如下:

^(?=.*a)(?=.*b)(?=.*c).*$

规则解释

  • ^ 定位到行的起始位置,确保校验是针对整行生效
  • (?=.*a) 正向前瞻断言,检查整行的任意位置存在字符a,断言不会消耗匹配位置,不影响后续其他规则的校验
  • (?=.*b) 同上,检查整行存在字符b
  • (?=.*c) 同上,检查整行存在字符c
  • .* 匹配任意数量的任意字符,覆盖行内除a/b/c之外的其他内容
  • $ 定位到行的结束位置

原正则问题说明

你之前使用的[abc]+\s仅会匹配连续出现的a/b/c字符加空白,只会校验行中存在a/b/c中的任意字符,不会要求三个字符同时出现,因此会命中仅包含a、b的abab行。

测试用例匹配结果

对应你给出的测试内容,匹配效果如下:

  • abcb:同时包含a、b、c → 匹配成功
  • abab:缺少字符c → 匹配失败
  • abcd:同时包含a、b、c → 匹配成功
  • abdd:缺少字符c → 匹配失败
    完全符合你需要匹配第1、3行的需求。

补充说明

如果需要匹配不区分大小写的a/b/c,开启正则的不区分大小写模式(i标记)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:36:03