正则表达式只允许单词之间有一个连字符



我有一个ASP中的文本框。NET应用程序,为此我需要使用正则表达式来验证用户输入字符串。要求与字符串连字符的总数只能是一个。

匹配:

    测试
  1. Test-hello
  2. 测试——
  3. 以及
非匹配:

  1. 测试——你好
  2. 以及
  3. test-hello——

您可以使用此模式匹配带有零或一个连字符的字符串:

^[^-]*-?[^-]*$

解释:

从字符串的开头(^)开始,它将包含零个或多个非连字符([^-]*),然后是一个可选的连字符(-?),然后是零个或多个非连字符([^-]*)和字符串的结尾($)


这个模式匹配只有一个连字符的字符串:

^[^-]*-[^-]*$

解释:

从字符串的开头(^)开始,它将包含零个或多个非连字符([^-]*),然后是所需的连字符(-),然后是零个或多个非连字符([^-]*)和字符串的结尾($)

试试这个:

^[^-]*-?[^-]*$

[^-]为非连字符

相关内容

最新更新