我目前有一个正则表达式来验证我的应用程序中的字段,如下所示:
^(?:(?:\w|[-])+\.(?:(?:(?:\w|[-])+|\.))*(?:\/(?:\w|[-])*)*|\w*)$
不幸的是,这方面的某些方面不起作用。
aaa - 通过 - 正确
aaa.aaa - 通过 - 正确
aaa.aaa-aaa - 通过 - 正确
aaa-aaa - 失败 - 不正确
如何更改正则表达式以使最后一个场景通过?
答案 0 :(得分:1)
第一个\.
会导致您的上一个表达式失败。由于有更多的组,表达式的第一部分必须匹配。
如果您将点设为可选,则表达式可以正常工作。
不确定,但也许你可以像这样简化表达式:
[A-Za-z]+([\-\.][A-Za-z]+)*