2014-02-10 4 views
1

Я пытаюсь сопоставить все латинские символы в кодированном тексте UTF 16. Я использую [A-Za-z], который отлично работает. Поскольку я анализировал китайский и японский текст, я встречал странные версии A-Z, которые регулярное выражение не собирает.Символы, которые не соответствуют [A-Za-z]

https://gist.github.com/kyleect/1c66fd388d362653969d

Left являются символами я не могу определить, правильно от моей клавиатуры. Я копирую и вставляю их в chrome page find input, google search и find find в текстовом редакторе. Все согласны: Left == Right, но Right != Left

Что это за персонажи и вау, я нацелен на них в регулярном выражении?

+1

Время, чтобы узнать о символьных классах Юникода. – bmargulies

+0

Какой двигатель регулярного выражения вы используете? – Ryan

ответ

3

Вы можете посмотреть на их коды символов в консоли браузера:

> 'B'.charCodeAt(0).toString(16) 
ff22 

It’s a fullwidth letter! Вы, вероятно, может соответствовать целый набор с [\uff21-\uff3a] в приличном регулярных выражений. Или A-Z в еще более приличном.

+0

Это сработало. Я даже начал просматривать список символов UTF16, отправленный коллегой, но не смог его найти. – Kylee

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