我在 ASP.NET 应用程序中有一个文本框,为此我需要使用正则表达式来验证用户输入字符串。要求是字符串的连字符总数只能是一个。
火柴:
- 测试
- 测试你好
- 测试-
- -测试
不匹配:
- 测试——你好
- -测试-
- 测试你好——
您可以使用此模式来匹配带有零个或一个连字符的字符串:
^[^-]*-?[^-]*$
解释:
从字符串的开头 ( ^) 开始,它将匹配零个或多个非连字符 ( [^-]*),后跟一个可选的连字符 ( -?),然后是零个或多个非连字符 ( [^-]*) 和字符串的结尾 ( $)
此模式用于匹配带有一个连字符的字符串:
^[^-]*-[^-]*$
解释:
从字符串的开头 ( ^) 开始,它将匹配零个或多个非连字符 ( [^-]*),然后是所需的连字符 ( -),然后是零个或多个非连字符 ( [^-]*) 和字符串的结尾 ( $)
试试这个 :
^[^-]*-?[^-]*$
[^-]是非连字符。