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

如何编写正则表达式以匹配多段带HEX颜色标记的文本并限制匹配范围至下一个HEX标记

解决带HEX颜色标记的文本分段匹配问题

我来帮你搞定这个正则匹配的难题!你之前遇到的问题是用.*会贪婪地吃掉所有后续内容,包括后面的颜色标记,其实只要用负向预查来限制匹配范围就能解决。

正确的正则表达式

\{[a-fA-F0-9]{6}\}(?:(?!\{[a-fA-F0-9]{6}\}).)*

正则解释

  • \{[a-fA-F0-9]{6}\}:精准匹配开头的HEX颜色标记(比如{ff0000}),这里把字符范围限定为a-fA-F0-9,因为HEX颜色只包含这些字符,比原来的[a-zA-Z0-9]更准确。
  • (?:(?!\{[a-fA-F0-9]{6}\}).)*:这是核心的范围限制部分:
    • (?!...) 是负向预查断言,它会检查当前位置的后面不是一个新的HEX颜色标记;
    • . 匹配任意单个字符;
    • 整个非捕获组(?:...)重复这个逻辑,就能一直匹配到下一个颜色标记出现之前的所有内容,不会“吃掉”后面的颜色标记。

匹配效果

用这个正则匹配你的源文本,会得到以下3个匹配项(和你预期的结果一致):

  • {ff0000}Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
  • {8b00ff}Ut enim {FFFFFF}ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
  • {0000ff}Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 14:47:45