2010-03-23 3 views
7

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

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

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

Я использую C#, кстати.

+6

Какой язык программирования? – kennytm

+0

Почему язык имеет значение? У RegEx есть свои собственные стандарты, не так ли? – Romain

+3

Язык программирования * и * строковый формат (локаль) являются важными. – Gabe

ответ

4

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

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

\p{IsGreekandCoptic} матчи:

These characters will be matched by \p{IsGreekandCoptic} http://img203.imageshack.us/img203/3760/greekcoptic.png

+0

Какой инструмент вы использовали для создания изображения «символов в этом блоке»? –

+1

@ user309483: [RegexBuddy] (http://www.regexbuddy.com) –

+0

Привет, этот шаблон не работает для меня, что мне не хватает? ^ [A-Za-z0-9 \ p {IsGreekandCoptic} \ - \.] + $ – 2012-06-14 09:50:35

1

Для Java, из Узор:

Javadoc

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

3

Если вы используете язык, который использует 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 Regular Expressions для получения дополнительной информации.

+2

Если у вас есть PCRE, просто используйте '\ p {Greek}'. –

0

Будучи мой первый ответ на SO, я не могу downvote ответа Даниэля на яваскрипт регулярных выражений.

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

Это правильное регулярное выражение для нахождения греческого & коптских в ЯШАХ:

/[\u0370-\u03FF]+/gm 

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

Выдержка из диаграммы:

0370 Ͱ ГРЕЦИИ CAPITAL ПИСЬМО HETA → 2C75 Ⱶ латинскома прописная буква полчаса

0371 ͱ ГРЕЦИИ МАЛЕНЬКАЯ БУКВА HETA → 2C76 ⱶ латинская строчная половина ч

0372 Ͳ ГРЕЦИИ CAPITAL ПИСЬМО архаических SAMPI

0373 ͳ ГРЕЦИИ МАЛЫЙ ПИСЬМО архаических SAMPI

EDIT: Craig указывает, что Регулярное выражение Дэниела подходит для OP. Хотя я не могу найти, где ОП указывает, какой греческий текст он оценивает, я уступлю, что мой ответ действителен только для древних текстов.

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

+0

Спасибо за вклад и добро пожаловать в ТАК. Вопрос был задан в контексте современного состояния греческого алфавита, а не древней версии алфавита. – craigmoliver

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