R中的单字母正则表达式操作

single letter regex operations in R

我试图在希伯来语文本事件中识别我有一个单词(包含 2 个或更多单词)后跟单个字母的事件。我需要匹配这些实例,然后将单个字母连接到它的前一个词。任何文本都可能有多个事件: 示例:

texts <- c("שלום חברי צה ל היקרים", "נכון לא נכון קשק ש בבטחון", "צה ל ינצח ")

我需要将其替换为:

texts <- c("שלום חברי צהל היקרים", "נכון לא נכון קשקש בבטחון", "צהל ינצח ")

感谢您的建议

here 开始,希伯来字母 unicode 范围从 05D0-05F2 开始,因此您可以在字符 class 中指定 unicode 范围,然后它将匹配单个希伯来字母。指定 space 作为每边的单词边界,您可以匹配单个字母单词并替换为捕获组以删除字母前的 space 。

gsub("\s([\u05D0-\u05F2]\s)", "\1", texts)  # hebrew letter unicode range
# [1] "שלום חברי צהל היקרים"     "נכון לא נכון קשקש בבטחון" "צהל ינצח "

希伯来文符号 unicode 范围从 here,您可以根据需要进行相应调整。

gsub("\s([\u0590-\u05FF]\s)", "\1", texts)  
# [1] "שלום חברי צהל היקרים"     "נכון לא נכון קשקש בבטחון" "צהל ינצח "