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

如何用正则负前瞻匹配多行文本,补全缺失maxlength配置项?

为YAML格式的maxlength块批量添加缺失的maxlength_js_enforce配置项

问题分析

你需要处理多个YAML文件中的maxlength:配置块,部分块已包含maxlength_js_enforce: true,部分缺失,需统一为所有缺失该配置的块添加它。之前的正则因未正确界定块边界、仅检查单行内容,导致匹配结果不符合预期。

解决方案(基于VS Code/Sublime等支持多行正则的编辑器)

1. 批量匹配无目标配置的maxlength块

启用编辑器的正则表达式模式和多行模式,使用以下查找正则:

(maxlength:\n)(?:(?!maxlength_js_enforce:).*\n)+?(?=( {2}[^\s]+:|$))

正则逻辑:

  • 精准匹配以maxlength:开头的配置块
  • 确保块内完全不包含maxlength_js_enforce:
  • 自动识别块边界:直到下一个同级缩进(2个空格开头的其他配置键)或文件结尾为止

2. 插入缺失的配置项

将匹配到的内容替换为:

$1    maxlength_js_enforce: true\n$0

该规则会把maxlength_js_enforce: true插入到maxlength:块的第一行子项位置,保持4个空格的缩进对齐(和其他子项格式统一)。

可选:插入到指定位置(如maxlength_js_label之后)

若需要和示例格式一致,将配置项放在maxlength_js_label之后,可使用以下规则:

查找正则

(maxlength_js_label: '.*?'\n)(?!.*maxlength_js_enforce:)

替换为

$1    maxlength_js_enforce: true\n

注意事项

  • 需确保正则中的空格数量和你的YAML文件缩进一致(示例为2个空格缩进父项、4个空格缩进子项,若用tab需调整)
  • 操作前建议备份文件,避免意外修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 09:05:09