正则表达式:用 unicode 字符替换 "something"

Regex: Replace "something" by a unicode character

我想弄清楚如何找到某个字符并将其替换为 Unicode 字符。在我的示例中,我想找到所有 spaces (\s) 并将它们替换为窄的或细的 space(例如 Unicode U+2006)。


示例文本

8. 3. 2014


搜索模式

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


替换图案

{UNICODE}{UNICODE}


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

我知道我可以将正确的白色 space 复制并粘贴到位,但我对如何使用 Unicode 字符进行操作很感兴趣。

提前致谢!

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

\x{2009}\x{2009}

但通常您可以用您可以键入的任何字符替换。只需将实际的薄 spaces 放入您的搜索和替换对话框中:

  

您可以使用 OS 的实用程序从可用字符列表中获取薄 space,对于 Windows,它是 "Character Map" 工具,其中thin space 可以在 "General Punctuation" Unicode 子范围内找到。搜索 "thin space" 也可以。 MacOS 有 "Character Viewer",可以做同样的事情。