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

如何编写正则表达式匹配字符间含任意空白的指定字符串

匹配含任意空白间隔的指定字符串正则方案

针对你需要匹配固定字符串(比如BRB),允许字符间有任意空白、忽略大小写,同时排除无关匹配的需求,直接给你可复用的正则写法和思路:

核心正则模板(以BRB为例)

/\b(?:B\s*R\s*B)\b/i

各部分解释

  • \b:单词边界,确保匹配的内容是独立片段,不会和其他字母粘连(比如避免把"BRBe"或"xyzBRB"误判为匹配,同时排除像"What be right b means?"里的单个b)
  • B\s*R\s*B:把目标字符串的每个字符拆开,中间插入\s*——\s匹配任意空白字符(空格、制表符等),*表示允许0个或多个空白,完美满足"字符间可加任意空白"的需求
  • i:忽略大小写修饰符,不管是全大写、全小写还是混合大小写(比如brb、BRb、bRb)都能匹配

测试验证(对应你的例子)

  • 匹配成功的情况:
    • "What b r b means?" → 符合b(空白)r(空白)b的顺序,忽略大小写后匹配
    • "What BR b means?" → BR(空白)b,顺序正确
    • "what brb means?" → 无空白的完整字符串,\s*允许0个空白,匹配
  • 匹配失败的情况:
    • "What be right b means?" → 只有单个b,没有中间的R,不符合顺序,不匹配

扩展:允许连字符等其他分隔符

如果需要像你的例子里"What BR-b means?"这种连字符分隔的情况也能匹配,把\s*改成[\s-]*即可,正则变为:

/\b(?:B[\s-]*R[\s-]*B)\b/i

[\s-]表示匹配空白字符或连字符,*同样允许0个或多个。

通用化方法

不管你的目标字符串是什么,都可以套用这个模板:

  1. 把目标字符串的每个字符单独拆出来
  2. 在每两个字符之间插入\s*(或[\s-]*)
  3. 前后加上\b,最后加上忽略大小写修饰符

比如目标是"LOL",正则就是:/\b(?:L\s*O\s*L)\b/i

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:48:22