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