正则表达式:用Unicode字符替换“某物”

问题描述 投票:-1回答:1

我试图弄清楚如何找到某个字符并将其替换为Unicode字符。在我的示例中,我想查找所有空格(\ s)并将其替换为狭窄或狭窄的空格(例如Unicode U + 2006)。


示例文本

8. 3. 2014


搜索模式

(\d{1,2}\.)(\s?)(\d{1,2}\.)(\s?)(\d{2,4})


替换样式

$1{UNICODE}$3{UNICODE}$5


出于某种原因,我无法用(!)替换Unicode字符,我只能搜索一个。我正在使用一个名为»RegExRX 3«的RegEx应用程序来测试我的字符串。最后,我希望能够将其与Adobe的InDesign GREP功能配合使用。

我知道我可以将正确的空白复制并粘贴到适当的位置,但是我对如何使用Unicode字符感兴趣。

提前感谢!

regex replace unicode pcre adobe-indesign
1个回答
0
投票

InDesign使用与Perl兼容的正则表达式(pcre)。通过\x{XXXX}将Unicode字符放入替换字符串中,其中XXXX是十六进制字符代码:

$1\x{2009}$2\x{2009}$5

但是通常,您可以用任何可以键入的字符替换。只需将实际的稀疏空间放入搜索和替换对话框中即可:

$1 $3 $5

您可以使用操作系统的实用程序从可用字符列表中抢占稀疏空间,对于Windows,这是“字符映射”工具,可以在“常规标点” Unicode子范围内找到稀疏空间。搜索“稀薄空间”也可以。 MacOS具有“角色查看器”,可以执行相同的操作。

Thin Space selection on Windows

© www.soinside.com 2019 - 2024. All rights reserved.