0

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

火柴:

  1. 测试
  2. 测试你好
  3. 测试-
  4. -测试

不匹配:

  1. 测试——你好
  2. -测试-
  3. 测试你好——
4

2 回答 2

3

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

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

解释:

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


此模式用于匹配带有一个连字符的字符串:

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

解释:

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

于 2013-03-20T16:18:24.777 回答
2

试试这个 :

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

[^-]是非连字符。

于 2013-03-20T16:19:38.957 回答