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

Adobe InDesign中GREP查找替换保留括号内文本的问题求助

Adobe InDesign中GREP查找替换保留括号内文本的问题求助

嘿,咱们来搞定InDesign里这个GREP查找替换的问题,满足你保留阿拉伯语文本中括号内内容的需求!你之前试的(?<=\()[^()]+(?=\))没效果,是因为这个表达式只能选中括号里的文本,但没法处理括号外的内容——毕竟你要删除的是除了括号内文字之外的所有东西,包括括号本身。

给你两个可行的解决办法,按需选择:

方法一:一步到位的GREP替换

  1. 打开InDesign的「查找/更改」面板,切换到「GREP」选项卡
  2. 在「查找内容」框里输入:
    (?s).*?\(([^()]+)\)|.+
    
  3. 在「更改为」框里输入:
    $1\r
    
  4. 点击「全部更改」

表达式说明:

  • (?s):开启单行模式,让.能匹配换行符,这样跨段落的内容也能被正确处理
  • .*?\(([^()]+)\):先匹配任意内容直到遇到一对括号,同时把括号里的文本捕获到$1分组中
  • |.+:如果遇到没有括号的内容,直接匹配整个内容块
  • 替换为$1\r:匹配到括号内容时,输出捕获的文本加换行;匹配到无括号内容时,$1为空,相当于直接删除这些内容

操作完成后,所有括号内的文本会被单独保留,每个内容占一行,其他无关内容全被清除。

方法二:分两步操作(更直观)

如果你觉得一步到位的表达式有点复杂,可以拆成两步来做:

  1. 第一步:删除所有括号外的内容
    • 查找内容:(?s)(?!\()[^()]+(?<!\))
    • 更改为:留空,点击「全部更改」
  2. 第二步:删除所有括号
    • 查找内容:[()]
    • 更改为:留空,点击「全部更改」

这样操作后,也能精准保留你需要的括号内文本,步骤更直观,容易理解。

另外,不用担心阿拉伯语字符的问题,InDesign的GREP引擎对阿拉伯字符的支持是完全没问题的~

备注:内容来源于stack exchange,提问作者Shahid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 07:53:17