Греческие символы, регулярные выражения и C # - PullRequest
7 голосов
/ 23 марта 2010

Я создаю CMS для научного журнала, в котором используется много греческих символов. Мне нужно проверить поле, чтобы включить определенный набор символов и греческие символы. Вот что у меня сейчас:

[^a-zA-Z0-9-()/\s]

Как мне включить греческие символы в дополнение к буквенно-цифровым, '(', ')', '-' и '_'?

Кстати, я использую C #.

Ответы [ 4 ]

5 голосов
/ 23 марта 2010

В языках .NET вы можете использовать \p{IsGreekandCoptic} для соответствия греческим символам. Таким образом, полученное регулярное выражение равно

[^a-zA-Z0-9-()/\s\p{IsGreekandCoptic}]

\p{IsGreekandCoptic} совпадений:

Этим символам будет соответствовать \ p {IsGreekandCoptic} http://img203.imageshack.us/img203/3760/greekcoptic.png

3 голосов
/ 23 марта 2010

Если вы используете язык, который использует PCRE для регулярных выражений и UTF-8, /[\x{0374}-\x{03FF}]+/u должен соответствовать греческим символам. Греческие символы располагаются между U + 0374 и U + 03FF ( source ), а модификатор u указывает PCRE использовать Unicode. Как указано ниже, /\p{Greek}+/u также работает с PCRE.

Если вы используете Javascript, он использует \uXXXX вместо \x{XXXX}: /[\u0374-\u03FF]+/.

Также см. Это руководство по Регулярным выражениям Unicode для получения дополнительной информации.

1 голос
/ 23 января 2017

Будучи моим первым ответом на SO, я не могу понизить ответ Дэниела на регулярное выражение javascript.

Я знаю, что очень поздно, но ответ Даниэля неверен. Это исключает древние символы ниже! Это важно, если вы работаете над приложением Библии, которое исследует слова на древнегреческом языке!

Это правильное регулярное выражение для поиска греческого и коптского в js:

/[\u0370-\u03FF]+/gm 

http://unicode.org/charts/PDF/U0370.pdf

Выдержка из таблицы:

0370 L ПИСЬМО ГРЕЧЕСКОГО КАПИТАЛА HETA → 2C75 half латинская заглавная буква h

0371 ͱ ГРЕЧЕСКОЕ МАЛЕНЬКОЕ ПИСЬМО ХЕТА → 2C76 ⱶ латинская строчная буква h

0372 Ͳ ПИСЬМО ГРЕЧЕСКОГО КАПИТАЛА ARCHAIC SAMPI

0373 ͳ ГРЕЧЕСКОЕ МАЛЕНЬКОЕ ПИСЬМО АРХАИКА SAMPI

РЕДАКТИРОВАТЬ: Крейг указывает, что регулярное выражение Дэниела является правильным для ОП. Хотя я не могу найти, где ОП указывает, какой греческий текст он оценивает, я признаю, что мой ответ действителен только для древних текстов.

В то время как я редактирую это, я также хочу отметить, что никакое регулярное выражение здесь не соответствует греческим символам с акцентом, который Персей добавляет к их текстам. Поэтому, если вам случится установить http://www.perseus.tufts.edu/hopper/, или использовать какой-либо из их ресурсов общественного достояния в приложении, будьте осторожны с моим регулярным выражением.

1 голос
/ 23 марта 2010

Для Java, из шаблона javadoc:

\ p {InGreek} Символ на греческом блок (простой блок)

...