我试图弄清楚如何使用GREP在InDesign中的数字上添加逗号(,
)和美元符号($
)。
例如,
一种GREP配置,可将4位数字(例如2000
转换为$2,000
一种GREP配置,可将5位数字(例如20000
转换为$20,000
答案 0 :(得分:0)
首先,通过以下任一方式打开InDesign的Find/Change
调色板:
Edit
> Find/Change
。然后,在GREP
面板中选择Find/Change
面板。
TL; DR 使用下面结合解决方案A和B 部分中提供的解决方案。但是,如果您也想这样做,请考虑将将100000
之类的6位数字更改为下面的$100,000
部分。
一种GREP配置,可将4位数字(例如
2000
转换为$2,000
在"Find What"
区域中,输入以下模式:
(?<![0-9])([0-9]{1})([0-9]{3})(?![0-9]+?)
有关此正则表达式模式的详细说明,请参见here。
在"Change To"
区域中输入以下内容:
$$1,$2
一种GREP配置,可将5位数字(例如
20000
转换为$20,000
在"Find What"
区域中,输入以下模式:
(?<![0-9])([0-9]{2})([0-9]{3})(?![0-9]+?)
有关此正则表达式模式的详细说明,请参见here。
在"Change To"
区域中输入以下内容:
$$1,$2
要满足您的要求,您可以利用以下单个regexp模式执行单个“查找/替换” 。这可以满足这两个要求,即将2000
等数字更改为$2,000
,还可以将20000
等数字更改为$20,000
在"Find What"
区域中,输入以下模式:
(?<![0-9])([0-9]{1,2}?)([0-9]{3})(?![0-9]+?)
有关此正则表达式模式的详细说明,请参见here。
在"Change To"
区域中输入以下内容:
$$1,$2
100000
之类的6位数字更改为$100,000
如果您还希望将100000
之类的6位数字更改为$100,000
,请执行以下操作:
在"Find What"
区域中,输入以下模式:
(?<![0-9])([0-9]{1,3}?)([0-9]{3})(?![0-9]+?)
有关此正则表达式模式的详细说明,请参见here。
在"Change To"
区域中输入以下内容:
$$1,$2
上述解决方案中的"Change To"
文本(即$$1,$2
)利用$1
和$2
来引用与子表达式匹配的数字包含在正则表达式模式的括号(...)
中。第一个美元符号($
)和逗号(,
)插入结果文本中
要在文档中执行更改,您需要先单击"Find"
按钮,然后单击"Change All"
按钮。
编辑:
OP的作者随后在评论中提出了以下要求:
最后一点,我要在表达式中添加什么以使其搜索9位数字?
执行上述中提供的解决方案后,也可以将100000
之类的6位数字更改为$100,000
部分,请考虑运行第二个查找/更改使用以下配置:
在"Find What"
区域中,输入以下模式:
(?<![0-9])([0-9]{1,3}?)([0-9]{3})([0-9]{3})(?![0-9]+?)
有关此正则表达式模式的详细说明,请参见here。
在"Change To"
区域中输入以下内容:
$$1,$2,$3
因此,在执行了两个单独的“查找/更改”任务后,即
100000
之类的6位数字更改为$100,000
您将处理长度在4到9位之间的所有数字/数字。
逗号的位置如下表所示:
┏━━━━━━━━┯━━━━━━━━━━━┯━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━┓
┃ No. of │ Example │ Example │ │ ┃
┃ digits │ Before │ After │ Find What Pattern │ Change To ┃
┣━━━━━━━━┿━━━━━━━━━━━┿━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┫
┃ 4 │ 1234 │ $1,234 │ │ ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 5 │ 12345 │ $12,345 │ (?<![0-9])([0-9]{1,3}?)([0-9]{3})(?![0-9]+?) │ $$1,$2 ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 6 │ 123456 │ $123,456 │ │ ┃
┣━━━━━━━━┿━━━━━━━━━━━┿━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┫
┃ 7 │ 1234567 │ $1,234,567 │ │ ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 8 │ 12345678 │ $12,345,678 │ (?<![0-9])([0-9]{1,3}?)([0-9]{3})([0-9]{3})(?![0-9]+?) │ $$1,$2,$3 ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 9 │ 123456789 │ $123,456,789 │ │ ┃
┗━━━━━━━━┷━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━┛
答案 1 :(得分:0)
在InDesign中,您可以将其用于4、5或6个数字。
查找:(\d+)(?=(\d\d\d)+\b)
更改:$$1,