正则表达式接受 - 字符

时间:2016-07-04 07:49:45

标签: c# regex validation

我目前有一个正则表达式来验证我的应用程序中的字段,如下所示:

^(?:(?:\w|[-])+\.(?:(?:(?:\w|[-])+|\.))*(?:\/(?:\w|[-])*)*|\w*)$

不幸的是,这方面的某些方面不起作用。

  • aaa - 通过 - 正确

  • aaa.aaa - 通过 - 正确

  • aaa.aaa-aaa - 通过 - 正确

  • aaa-aaa - 失败 - 不正确

如何更改正则表达式以使最后一个场景通过?

1 个答案:

答案 0 :(得分:1)

第一个\.会导致您的上一个表达式失败。由于有更多的组,表达式的第一部分必须匹配。

如果您将点设为可选,则表达式可以正常工作。

不确定,但也许你可以像这样简化表达式:

[A-Za-z]+([\-\.][A-Za-z]+)*