Имейте в виду, что .NET использует \p{IsGreek}
для обозначения \p{Block:Greek_and_Coptic}
, , а не для обозначения \p{Script=Greek}
, что вам действительно нужно.Это обманчиво, потому что заставляет вас думать, что .NET может обрабатывать типы сценариев, но не может.
Немногочисленные движки регулярных выражений, кроме Perl и PCRE, понимают свойства сценария Unicode, такие как \p{IsGreek}
или просто\p{Greek}
.Javascript и .NET не входят в число тех, которые обрабатывают скрипты.Java будет понимать свойства скрипта в JDK7, но пока нет;Вы можете использовать ICU в Java для этого, хотя.
На этой странице говорится, что .NET обрабатывает свойства \p{InBlock}
.Таким образом, вы могли бы создать класс символов следующим образом:
[\p{InGreek}\p{InGreekAndCoptic}\p{InGreekExtended}\p{InAncientGreekMusicalNotation}]
Однако при этом все равно будут отсутствовать эти кодовые точки, которые все считаются греческим шрифтом:
ᴦ 7462 1D26 GREEK LETTER SMALL CAPITAL GAMMA
ᴧ 7463 1D27 GREEK LETTER SMALL CAPITAL LAMDA
ᴨ 7464 1D28 GREEK LETTER SMALL CAPITAL PI
ᴩ 7465 1D29 GREEK LETTER SMALL CAPITAL RHO
ᴪ 7466 1D2A GREEK LETTER SMALL CAPITAL PSI
ᵝ 7517 1D5D MODIFIER LETTER SMALL BETA
ᵞ 7518 1D5E MODIFIER LETTER SMALL GREEK GAMMA
ᵟ 7519 1D5F MODIFIER LETTER SMALL DELTA
ᵠ 7520 1D60 MODIFIER LETTER SMALL GREEK PHI
ᵡ 7521 1D61 MODIFIER LETTER SMALL CHI
ᵦ 7526 1D66 GREEK SUBSCRIPT SMALL LETTER BETA
ᵧ 7527 1D67 GREEK SUBSCRIPT SMALL LETTER GAMMA
ᵨ 7528 1D68 GREEK SUBSCRIPT SMALL LETTER RHO
ᵩ 7529 1D69 GREEK SUBSCRIPT SMALL LETTER PHI
ᵪ 7530 1D6A GREEK SUBSCRIPT SMALL LETTER CHI
ᶿ 7615 1DBF MODIFIER LETTER SMALL THETA
Ω 8486 2126 OHM SIGN
Кроме того ложных негативов пропущенных, перечисленных непосредственно выше, класс символов в квадратных скобках для любого из четырех приведенных выше греческих блоков также дает следующие ложных позитивов :
ʹ 884 0374 GREEK NUMERAL SIGN
; 894 037E GREEK QUESTION MARK
΅ 901 0385 GREEK DIALYTIKA TONOS
· 903 0387 GREEK ANO TELEIA
Ϣ 994 03E2 COPTIC CAPITAL LETTER SHEI
ϣ 995 03E3 COPTIC SMALL LETTER SHEI
Ϥ 996 03E4 COPTIC CAPITAL LETTER FEI
ϥ 997 03E5 COPTIC SMALL LETTER FEI
Ϧ 998 03E6 COPTIC CAPITAL LETTER KHEI
ϧ 999 03E7 COPTIC SMALL LETTER KHEI
Ϩ 1000 03E8 COPTIC CAPITAL LETTER HORI
ϩ 1001 03E9 COPTIC SMALL LETTER HORI
Ϫ 1002 03EA COPTIC CAPITAL LETTER GANGIA
ϫ 1003 03EB COPTIC SMALL LETTER GANGIA
Ϭ 1004 03EC COPTIC CAPITAL LETTER SHIMA
ϭ 1005 03ED COPTIC SMALL LETTER SHIMA
Ϯ 1006 03EE COPTIC CAPITAL LETTER DEI
ϯ 1007 03EF COPTIC SMALL LETTER DEI
Вот почему перечисление блоков просто недостаточно хорошо: вам действительно do нужно правильное свойство \p{Script=Greek}
или \p{IsGreek}
.К сожалению, сейчас вам придется сменить язык программирования, чтобы получить его, но я уверен, что это невозможно.