2016-09-17 6 views
0

Я хочу заменить Zero Width No-Break Space на space в Persian text с использованием R. Я использовал код, подобный этому, в соответствии с this link.Замена `Zero Width No-Break Space` на` пробел` в R

testAdrs<-"خيابان‌ مولوي‌نرسيده‌به‌قيام‌" 
testAdrs<-gsub('\xef\xbb\xbf',' ',testAdrs) 

Я хочу, чтобы мои testAdrs быть как "خيابان‌ مولوي‌ نرسيده‌ به‌ قيام‌", однако нет никаких изменений в моей строке.

В чем проблема?

+0

Вы попробовали 'gsub (" [[: space:]] "," ", testAdrs)'? – hrbrmstr

+0

@hrbrmstr спасибо. это не работает. –

+1

@CyrusMohammadian Спасибо за ваш комментарий. Я хочу, чтобы он был автоматическим, и кто-то ответил на него ниже. –

ответ

2

Как я просмотрел текст 'خيابان‌ مولوي‌نرسيده‌به‌قيام‌' на моем терминале, я получил:

>>> خيابان\U+200C مولوي\U+200Cنرسيده\U+200Cبه\U+200Cقيام\U+ 

и превращал все эти символы, чтобы проклясть в оболочке Python, я получил:

>>> binascii.unhexlify(binascii.hexlify(u"خيابان\U+200C مولوي\U+200C نرسيده\U+200C به\U+200C قيام\U+200C".encode('utf-16'))).decode('utf-16') 
u'\u062e\u064a\u0627\u0628\u0627\u0646\u200c \u0645\u0648\u0644\u0648\u064a\u200c \u0646\u0631\u0633\u064a\u062f\u0647\u200c \u0628\u0647\u200c \u0642\u064a\u0627\u0645\u200c' 

Вы увидите, что там не является \ufeff («ZERO WIDTH NO-BREAK SPACE») в выводе программы выше. Еще одно доказательство - here, вы увидите, что ǎ легко можно сопоставить, но не из \x{feff}.

Таким образом, ваша проблема не является «ZERO WIDTH NO-BREAK SPACE» в вашей строке. Я думаю, что пространство, которое вы хотите заменить, может быть this one\u200C («ZERO WIDTH NON-JOINER»).

+1

Спасибо @fronthem Я использовал 'testAdrs <-gsub ('\ u {200c}', '', testAdrs), и он сработал. –

 Смежные вопросы

  • Нет связанных вопросов^_^