使用 GREP 在 Indesign 中将数字格式化为货币格式
Formatting numbers to currency format in Indesign using GREP
我想知道如何使用 GREP 在 InDesign 中为数字添加逗号 (,
) 和美元符号 ($
)。
例如,
一个 GREP 配置,将 2000
等 4 位数字转换为 ,000
一个 GREP 配置,将 20000
等 5 位数字转换为 ,000
首先,通过以下任一方式打开 InDesign 的 Find/Change
调色板:
- 从菜单栏中选择
Edit
> Find/Change
。
- 或者,在 macOS 上键入 ⌘+F,或键入 CTRL+F 在 Windows.
然后,select Find/Change
调色板中的 GREP
面板。
TL;DR 使用下面结合解决方案 A 和 B 部分中提供的解决方案。但是,请考虑 中提供的解决方案,如果您也想这样做,还可以将 100000
等 6 位数字更改为下面的 0,000
部分。
解决方案 A:
A GREP configuration to turn 4 digit numbers such as 2000
into ,000
在"Find What"
区域,输入以下模式:
(?<![0-9])([0-9]{1})([0-9]{3})(?![0-9]+?)
可以找到此正则表达式模式的详细说明 here。
在"Change To"
区域输入以下内容:
$,
解决方案 B:
A GREP configuration to turn 5 digits numbers such as 20000
into ,000
在"Find What"
区域,输入以下模式:
(?<![0-9])([0-9]{2})([0-9]{3})(?![0-9]+?)
可以找到此正则表达式模式的详细解释 here。
在"Change To"
区域输入以下内容:
$,
结合解决方案 A 和 B:
为了达到您的要求,您可以使用以下单个正则表达式模式来执行单个 "Find/Replace"。这处理了这两个要求,即将 2000
等数字更改为 ,000
并且还处理将 20000
等数字更改为 ,000
在"Find What"
区域,输入以下模式:
(?<![0-9])([0-9]{1,2}?)([0-9]{3})(?![0-9]+?)
可以找到此正则表达式模式的详细解释 here。
在"Change To"
区域输入以下内容:
$,
也将100000
等6位数字改成0,000
如果您还想将 100000
等 6 位数字更改为 0,000
,请执行以下操作:
在"Find What"
区域,输入以下模式:
(?<![0-9])([0-9]{1,3}?)([0-9]{3})(?![0-9]+?)
可以找到此正则表达式模式的详细解释 here。
在"Change To"
区域输入以下内容:
$,
补充说明:
上述解决方案中的"Change To"
文本(即$,
)利用</code>和<code>
来引用匹配的数字正则表达式模式的括号 (...)
中包含的子表达式。第一个美元符号 ($
) 和逗号 (,
) 被插入到结果文本中
要在您的文档中执行更改,您需要依次单击 "Find"
按钮和 "Change All"
按钮。
编辑:
OP 的作者随后在评论中提出以下问题:
also one last note, what would I add to the expression to make it search for 9 digit numbers?
在执行上述 中提供的解决方案后,将 100000
等 6 位数字更改为 0,000
部分再考虑 运行 Find/Change 使用以下配置:
在"Find What"
区域,输入以下模式:
(?<![0-9])([0-9]{1,3}?)([0-9]{3})([0-9]{3})(?![0-9]+?)
可以找到此正则表达式模式的详细说明 here。
在"Change To"
区域输入以下内容:
$,,
因此,在执行两个单独的 Find/Change 任务后,即
- 中提供的也把
100000
等6位数字改成0,000
- 后面是 编辑 部分中提供的这个新内容。
您将处理所有 numbers/digits 长度从 4 到 9 位的数字。
逗号的位置将如下面 table 所示:
┏━━━━━━━━┯━━━━━━━━━━━┯━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━┓
┃ No. of │ Example │ Example │ │ ┃
┃ digits │ Before │ After │ Find What Pattern │ Change To ┃
┣━━━━━━━━┿━━━━━━━━━━━┿━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┫
┃ 4 │ 1234 │ ,234 │ │ ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 5 │ 12345 │ ,345 │ (?<![0-9])([0-9]{1,3}?)([0-9]{3})(?![0-9]+?) │ $, ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 6 │ 123456 │ 3,456 │ │ ┃
┣━━━━━━━━┿━━━━━━━━━━━┿━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┫
┃ 7 │ 1234567 │ ,234,567 │ │ ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 8 │ 12345678 │ ,345,678 │ (?<![0-9])([0-9]{1,3}?)([0-9]{3})([0-9]{3})(?![0-9]+?) │ $,, ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 9 │ 123456789 │ 3,456,789 │ │ ┃
┗━━━━━━━━┷━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━┛
在 InDesign 中,您可以将其用于 4、5 或 6 个数字。
查找:(\d+)(?=(\d\d\d)+\b)
变化:$,
我想知道如何使用 GREP 在 InDesign 中为数字添加逗号 (,
) 和美元符号 ($
)。
例如,
一个 GREP 配置,将
2000
等 4 位数字转换为,000
一个 GREP 配置,将
20000
等 5 位数字转换为,000
首先,通过以下任一方式打开 InDesign 的
Find/Change
调色板:- 从菜单栏中选择
Edit
>Find/Change
。 - 或者,在 macOS 上键入 ⌘+F,或键入 CTRL+F 在 Windows.
- 从菜单栏中选择
然后,select
Find/Change
调色板中的GREP
面板。
TL;DR 使用下面结合解决方案 A 和 B 部分中提供的解决方案。但是,请考虑 中提供的解决方案,如果您也想这样做,还可以将 100000
等 6 位数字更改为下面的 0,000
部分。
解决方案 A:
A GREP configuration to turn 4 digit numbers such as
2000
into,000
在
"Find What"
区域,输入以下模式:(?<![0-9])([0-9]{1})([0-9]{3})(?![0-9]+?)
可以找到此正则表达式模式的详细说明 here。
在
"Change To"
区域输入以下内容:$,
解决方案 B:
A GREP configuration to turn 5 digits numbers such as
20000
into,000
在
"Find What"
区域,输入以下模式:(?<![0-9])([0-9]{2})([0-9]{3})(?![0-9]+?)
可以找到此正则表达式模式的详细解释 here。
在
"Change To"
区域输入以下内容:$,
结合解决方案 A 和 B:
为了达到您的要求,您可以使用以下单个正则表达式模式来执行单个 "Find/Replace"。这处理了这两个要求,即将 2000
等数字更改为 ,000
并且还处理将 20000
等数字更改为 ,000
在
"Find What"
区域,输入以下模式:(?<![0-9])([0-9]{1,2}?)([0-9]{3})(?![0-9]+?)
可以找到此正则表达式模式的详细解释 here。
在
"Change To"
区域输入以下内容:$,
也将100000
等6位数字改成0,000
如果您还想将 100000
等 6 位数字更改为 0,000
,请执行以下操作:
在
"Find What"
区域,输入以下模式:(?<![0-9])([0-9]{1,3}?)([0-9]{3})(?![0-9]+?)
可以找到此正则表达式模式的详细解释 here。
在
"Change To"
区域输入以下内容:$,
补充说明:
上述解决方案中的
"Change To"
文本(即$,
)利用</code>和<code>
来引用匹配的数字正则表达式模式的括号(...)
中包含的子表达式。第一个美元符号 ($
) 和逗号 (,
) 被插入到结果文本中要在您的文档中执行更改,您需要依次单击
"Find"
按钮和"Change All"
按钮。
编辑:
OP 的作者随后在评论中提出以下问题:
also one last note, what would I add to the expression to make it search for 9 digit numbers?
在执行上述 中提供的解决方案后,将 100000
等 6 位数字更改为 0,000
部分再考虑 运行 Find/Change 使用以下配置:
在
"Find What"
区域,输入以下模式:(?<![0-9])([0-9]{1,3}?)([0-9]{3})([0-9]{3})(?![0-9]+?)
可以找到此正则表达式模式的详细说明 here。
在
"Change To"
区域输入以下内容:$,,
因此,在执行两个单独的 Find/Change 任务后,即
- 中提供的也把
100000
等6位数字改成0,000
- 后面是 编辑 部分中提供的这个新内容。
您将处理所有 numbers/digits 长度从 4 到 9 位的数字。
逗号的位置将如下面 table 所示:
┏━━━━━━━━┯━━━━━━━━━━━┯━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━┓
┃ No. of │ Example │ Example │ │ ┃
┃ digits │ Before │ After │ Find What Pattern │ Change To ┃
┣━━━━━━━━┿━━━━━━━━━━━┿━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┫
┃ 4 │ 1234 │ ,234 │ │ ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 5 │ 12345 │ ,345 │ (?<![0-9])([0-9]{1,3}?)([0-9]{3})(?![0-9]+?) │ $, ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 6 │ 123456 │ 3,456 │ │ ┃
┣━━━━━━━━┿━━━━━━━━━━━┿━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━┫
┃ 7 │ 1234567 │ ,234,567 │ │ ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 8 │ 12345678 │ ,345,678 │ (?<![0-9])([0-9]{1,3}?)([0-9]{3})([0-9]{3})(?![0-9]+?) │ $,, ┃
┠────────┼───────────┼──────────────┤ │ ┃
┃ 9 │ 123456789 │ 3,456,789 │ │ ┃
┗━━━━━━━━┷━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━┛
在 InDesign 中,您可以将其用于 4、5 或 6 个数字。
查找:(\d+)(?=(\d\d\d)+\b)
变化:$,