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] "שלום חברי צהל היקרים" "נכון לא נכון קשקש בבטחון" "צהל ינצח "
我试图在希伯来语文本事件中识别我有一个单词(包含 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] "שלום חברי צהל היקרים" "נכון לא נכון קשקש בבטחון" "צהל ינצח "