使用正则表达式检查变音符号

时间:2012-01-19 09:32:33

标签: regex c#-4.0 .net-4.0

简单问题:现有项目允许我添加其他字段(对这些字段进行额外检查作为正则表达式)以支持自定义输入表单。我需要添加一个新表单,但无法更改此项目的工作方式。此表单允许访问者输入他的名字和姓氏以及姓名缩写。因此RegEx ^[a-zA-Z.]*$现在工作得很好 然后有人注意到它不会接受变音字符作为输入。土耳其名称Ömür未被视为有效。但是,它需要被接受。

所以我有两个选择:

  1. 完全删除支票,这将允许用户输入垃圾。
  2. 写一个正则表达式,其中也包括变音符号,但仍然没有数字,空格或其他非字母。
  3. 由于我无法更改项目代码,因此我只有这两个选项。我更喜欢选项2,但现在想知道适当的RegEx应该是什么。 (该项目是用C#4.0编写的。)

1 个答案:

答案 0 :(得分:29)

您可以将特定的Unicode转义用于字母 - \p{L}(这将包括A-Za-z范围):

^[.\p{L}]*$

regularexpressions.info

  

\ p {L}或\ p {Letter}

     

匹配具有“letter”属性的单个Unicode代码点。有关完整的属性列表,请参阅教程中的Unicode字符属性。每个Unicode代码点都只有一个属性。可以在字符类中使用。