我想在 Word 文档中选择一串 Unicode 希伯来语文本并删除希伯来语元音(又名 nikkud)而不更改任何其他内容。
我需要从所选文本中删除给定范围内的 Unicode 字符。我要删除的 Unicode 字符是 U+0591-U+05BD、U+05BF-U+05C2 和 U+05C4-U+05C7。
我找到了一种使用 Google 表格中的 REGEXREPLACE 函数从 Unicode 文本字符串中删除希伯来语元音的方法(谢谢 GitHub)。例如:
=REGEXREPLACE(B1,"[(\x{0591}-\x{05BD})OR(\x{05BF}-\x{05C2})OR(\x{05C4}-\x{05C7})]","")
Run Code Online (Sandbox Code Playgroud)
其中单元格 B1 包含带元音的原始希伯来语文本,该函数输出删除了元音的相同文本。那里使用的 Unicode 范围允许我留下两个需要保留的字符(U+05BE 和 U+05C3)。
使用该方法,我可以复制希伯来语文本字符串,例如,????? ??????,将其粘贴到我的 Google Sheet 中,然后复制输出,??? ????,并将其粘贴到原始文本上。这比 Word 中的宏慢得多(有数百个希伯来语文本字符串需要修复)。大部分文档是英文的,有希伯来语的片段,所以我不需要转换整个文档的解决方案。
一些搜索向我表明 Word VBA 存在类似的 RegEx 替换函数,但我没有足够的编程知识来适应我自己的需要。