gpt4 book ai didi

regex - 从选定的 Unicode 希伯来语文本中删除希伯来语元音 (nikkud)

转载 作者:行者123 更新时间:2023-12-03 22:15:51 24 4
gpt4 key购买 nike

我想在 Word 文档中选择一串 Unicode 希伯来语文本并删除希伯来语元音(又名 nikkud)而不更改任何其他内容。

我需要从所选文本中删除给定范围内的 Unicode 字符。我要删除的 Unicode 字符是 U+0591-U+05BD、U+05BF-U+05C2 和 U+05C4-U+05C7。

我找到了一种使用 Google 表格 ( thank you GitHub ) 中的 REGEXREPLACE 函数从 Unicode 文本字符串中删除希伯来语元音的方法。例如:

=REGEXREPLACE(B1,"[(\x{0591}-\x{05BD})OR(\x{05BF}-\x{05C2})OR(\x{05C4}-\x{05C7})]","")

其中单元格 B1 包含带元音的原始希伯来语文本,该函数输出删除了元音的相同文本。那里使用的 Unicode 范围允许我留下两个需要保留的字符(U+05BE 和 U+05C3)。

使用这种方法,我可以复制一个希伯来文本字符串,例如 אָמַר יְהוָה,将其粘贴到我的 Google Sheet 中,然后复制输出 אמר יהוה,并将其粘贴到原始文本上。这比 Word 中的宏慢得多(有数百个希伯来语文本字符串需要修复)。大部分文档是英文的,有希伯来语的片段,所以我不需要转换整个文档的解决方案。

一些搜索向我表明 Word VBA 存在类似的 RegEx 替换函数,但我没有足够的编程知识来适应我自己的需要。

最佳答案

你可以试试这个宏。请注意,我的速度非常慢:

Sub RemoveHebrewVowels()
Dim Word As Range
Dim Words As Variant
Dim WildcardCollection(3) As String
Rem [(\x{0591}-\x{05BD}]
WildcardCollection(0) = "[" & ChrW(1425) & "-" & ChrW(1469) & "]{1;}"
Rem [\x{05BF}-\x{05C2}]
WildcardCollection(1) = "[" & ChrW(1471) & "-" & ChrW(1474) & "]{1;}"
Rem [\x{05C4}-\x{05C7}]
WildcardCollection(2) = "[" & ChrW(1476) & "-" & ChrW(1479) & "]{1;}"
'Options.DefaultHighlightColorIndex = wdYellow
'Clear existing formatting and settings in Find
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
'Selection.Find.Replacement.Highlight = True
'Cycle through document and find wildcards patterns, replace when found
For Each Word In ActiveDocument.Words
For Each WildcardsPattern In WildcardCollection
With Selection.Find
.Text = WildcardsPattern
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
Next
End Sub

关于regex - 从选定的 Unicode 希伯来语文本中删除希伯来语元音 (nikkud),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50828136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com