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

如何使用正则匹配两个###分隔符之间的特定逗号字符

解决方案

方案1:直接匹配目标逗号(支持变长后视的正则引擎可用)

如果你的使用环境支持可变长度后视断言(比如Python、.NET、Java 9+、PHP等),可以直接用如下正则匹配两个###包裹范围内的逗号:

(?<=###(?:(?!###).)*),(?=(?:(?!###).)*###)

正则解释

  • (?<=###(?:(?!###).)*):正向后视断言,确保当前逗号的前方,最近出现的特殊标记是###,且中间没有其他###,即逗号处于第一个###的后方范围
  • ,:匹配目标逗号
  • (?=(?:(?!###).)*###):正向前视断言,确保当前逗号的后方,下一个出现的特殊标记是###,且中间没有其他###,即逗号处于第二个###的前方范围
    两个断言叠加即可限定匹配到的逗号一定在一对###的包裹范围内。

方案2:全正则引擎兼容方案(更推荐)

如果你的环境不支持变长后视(比如JavaScript、旧版本Java等),最稳妥的实现方式是先匹配整段###包裹的内容,再在匹配回调中处理内部的逗号,示例(Python代码):

import re

origin_str = "# ### This is a test, and I do not know what to do ### and here, we have some more information, all separated by comma"

# 示例为将包裹内的逗号替换为空,如需替换为其他内容修改replace的第二个参数即可
result = re.sub(
    r'(###.*?###)',
    lambda match_obj: match_obj.group(1).replace(',', ''),
    origin_str
)
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:24:05