希腊字符,正则表达式和C#

cra*_*ver 7 c# regex unicode utf-8 internationalization

我正在为科学期刊建立一个CMS,它使用了很多希腊字符.我需要验证字段以包含特定字符集和希腊字符.这就是我现在拥有的:

[^a-zA-Z0-9-()/\s]
Run Code Online (Sandbox Code Playgroud)

除了字母数字,'(',')',' - '和'_'之外,我如何才能包含希腊字符?

顺便说一句,我正在使用C#.

Dan*_*uis 5

如果您使用的语言使用 PCRE 进行正则表达式和 UTF-8,/[\x{0374}-\x{03FF}]+/u则应匹配希腊字符。希腊字符位于 U+0374 和 U+03FF 之间(源代码),并且u修饰符告诉 PCRE 使用 unicode。如下所述,/\p{Greek}+/u与 PCRE 配合使用也同样有效。

如果您使用的是 Javascript,它会使用:\uXXXX代替。\x{XXXX}/[\u0374-\u03FF]+/

另请参阅本Unicode 正则表达式指南以获取更多信息。

  • 如果您有 PCRE,只需使用 `\p{Greek}`。 (2认同)

Tim*_*ker 5

在.NET语言中,您可以使用\p{IsGreekandCoptic}匹配希腊字符.因此得到的正则表达式是

[^a-zA-Z0-9-()/\s\p{IsGreekandCoptic}]
Run Code Online (Sandbox Code Playgroud)

\p{IsGreekandCoptic} 火柴:

这些字符将由\ p {IsGreekandCoptic}匹配http://img203.imageshack.us/img203/3760/greekcoptic.png