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