如何用GREP在InDesign文档中替换数字间的连字符为短破折号?
批量替换数字间连字符为短破折号的解决方案
不用手动一个个改,用带零宽断言的GREP就能精准只选中数字中间的连字符,或者用捕获组兜底,两种方法都能搞定:
方法一:零宽断言精准匹配(推荐)
直接用这个查找表达式,只会选中数字之间的连字符,完全不碰前后数字:
(?<=[0-9])-(?=[0-9])
- 拆解下逻辑:
(?<=[0-9]):确认连字符前面是数字,但不把这个数字选进匹配结果-:就是你要替换的那个连字符(?=[0-9]):确认连字符后面是数字,同样不选这个数字
替换的时候直接输入短破折号–就行,替换后前后数字会原封不动保留。
方法二:捕获组兜底(兼容老工具)
如果你的排版工具不支持零宽断言,就用捕获组把前后数字存起来,替换的时候再放回去:
- 查找表达式:
([0-9])-([0-9])
- 替换内容:
$1–$2
这里$1会调用第一个括号里捕获的前面数字,$2调用后面的数字,中间换成短破折号,效果和第一种一样。
两种方法都能一次性替换所有符合要求的连字符,字母中间的连字符完全不会被碰,上千条参考文献几分钟就能搞定。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

