2016-08-06 13 views
1

ヘブライ語のテキストインシデントでは、単語が2つ以上の単語に続いて1文字で識別されています。私はこれらのインスタンスにマッチさせてから、その前の単語に1文字を連結する必要があります。任意のテキストは、その複数の事件を持っているかもしれません: 例:Rで一文字の正規表現操作

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

私はそれを交換する必要があります。

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

が提案 hereから

+3

WiktorStribiżewI @( "(* UTF)\\ S + \\ P {ヘブライ} \\ B(* UCP)"、 "\\ 1"、テキスト、パール= TRUE) '' –

+0

GSUB試しあなたがキャプチャグループを逃したと思う – rock321987

+2

はい、@ rock321987、私は何かを逃したことを知っていた。だから、ディマ、http://ideone.com/RWZfAFをチェックしてください。 –

答えて

1

、ヘブライ文字のUnicodeの範囲をありがとうが05D0-05F2であるため、文字クラスでユニコード範囲を指定できます。ユニコード範囲は、単一のヘブライ文字に一致します。スペースを各辺の単語境界として指定すると、1文字の単語をマッチさせ、キャプチャグループで置換して文字の前のスペースを削除することができます。 hereから

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

ヘブライ語の記号のUnicodeの範囲、あなたが必要なものに基づいて適宜調整することができます。

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