当前位置: 首页 > 知识库问答 >
问题:

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

斜向文
2023-03-14

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

匹配项:

    null
  1. 测试--您好
  2. -测试-
  3. 测试-您好--

共有1个答案

裴彦
2023-03-14

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

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

说明:

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

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

从字符串的开头(^)开始,它将产生零个或多个非连字符([^-]*),后跟一个必需的连字符(-),后跟零个或多个非连字符([^-]*)和字符串的结尾($)

 类似资料:
  • 我正在尝试编写一个正则表达式以允许数字和中间只有一个hypen(不能在开始或结束时)说模式:,是可以接受的,但模式:或或或或是不可接受的 我试过这样做,但这将允许-在开始时,也允许多个- 我不太擅长正则表达式,所以一点解释会很有帮助。 编辑:很抱歉再次打扰你,但我需要的数字只有2位(123-346)应被视为无效。

  • 我想要一个防止空白的正则表达式,只允许带标点符号的字母和数字(西班牙语)。下面的正则表达式工作得很好,但是它不允许标点符号。 例如,当使用这个正则表达式时,“Hola como estas”是可以的,但是“Hola,como estas?”不匹配。 如何将其调整为标点符号?

  • 问题内容: 允许数字和点的正则表达式是什么?关于\D这只允许数字,但不允许一个点,我需要它允许数字和一个点,这是一个浮点值,当我在中执行函数时需要有效,但我需要的只是正则表达式那只允许我需要它允许的。 这将是JavaScriptreplace函数的本机语言,用于删除非数字和其他符号(点除外)。 问题答案: 如果您想允许1和1.2: 如果您希望允许,和: 如果只允许1.2(仅浮动): \d允许位数(

  • 我想验证只包含Select查询的字符串。不管怎么说,还是要这么做的??查询

  • 我正在尝试编写一个正则表达式,允许数字和字符之间使用连字符(-),但删除字符之间的连字符,并用PHP字符串中的空格替换它。我是正则表达式的初学者,不知道如何编写正则表达式,有人能帮我吗 这里我需要的是一个类似于PHP的字符串 在应用正则表达式后,我需要的输出必须是这样的 还有其他方法吗?请帮忙

  • 我有以下模式来验证字符串 但在这里,它也不接受两个字符串之间的空间。有人能告诉我在上面的模式中我必须做什么改变,以便在两个字符串之间留出空间吗?但是字符串的开头和结尾不应该允许有空格。