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

正则表达式:允许最少的字母数字、点和-字符。星号允许在任何地方?

丘学海
2023-03-14

我的要求是:

  1. 字符串应至少包含4个字符(仅允许字母数字、点和连字符)
  2. 除此之外,任何地方(开始、中间或结束)都可以使用星号
  3. 它不应包含上文第1点和第2点中提及的任何其他字符

例如,以下是有效的字符串:

Ab*08

*.6-*N*

以下是无效字符串:

****AB-*

GH.*

我的正则表达式看起来像:

^(.*?[a-zA-Z0-9.\-]){4,}.*$

我在第1点和第2点中提到的基本验证是有效的。但正则表达式允许其他特殊字符,如

共有2个答案

周和歌
2023-03-14
^(?:\**[\w\d.-]\**){4,}$

这应该可以了。简单一点。

龚铭
2023-03-14

您可以使用

^(?:[*]*[a-zA-Z0-9.-]){4}[*a-zA-Z0-9.-]*$

它检查4个有效字符(可能被*包围),并检查整个字符串是否仅包含所需的字符。

强制性正则表达式101

注意:regex101不完全支持java正则表达式语法。所示的模式是PCRE模式,但使用的所有功能在java正则表达式中也可用。

注意2:如果您使用.匹配来检查您的输入,您可以省略锚点,因为它已经锚定了。

 类似资料:
  • 我正在尝试构建一个正则表达式来验证用户名,该用户名将包含字母数字字符,并且应该允许<代码>(dot)(撇号)和-(破折号),我尝试了以下正则表达式,但它们不起作用 <代码>/^[a-zA-Z0-9\.-]$/<代码> 请帮帮忙

  • 问题内容: 我努力了: 但我猜我做错了什么。 问题答案: 1.使用PHP的内置ctype_alnum 您不需要为此使用正则表达式,PHP有一个内置函数可以为您执行此操作,并且执行速度更快: 2.或者,使用正则表达式 如果您非常想使用正则表达式,则有几种选择。 首先: 包含多个字母数字(包括下划线),但包含所有。 或者: 甚至只是:

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

  • 我已经使用了这个正则表达式:“^[0-9a-zA-Z]{6,}$” 它允许:数字,大写字母,小写字母。它不允许:空白和特殊字符或符号。 但我想将其修改为: -允许:数字,以及大写字母或小写字母 -不允许:空白和特殊字符或符号。 实际上,我想将其用作Transaction ID的正则表达式。 有效的例子: TY5TF45TF463CHB7437R(大写数字) 无效示例: > SSHD434GFHDG

  • 我需要一个javascript正则表达式来验证电话号码。数字不能是单个零或仅为零。 e. g. 这些是不允许的。 但这些是允许的: 到目前为止,我拥有的javascript正则表达式是: 但这似乎不起作用。 规则是电话号码可以包含数字和和和。它可以以0开头,但电话号码不能是单个0或仅包含或不包含上述字符的多个零。 你能给我指一下正确的方向吗。提前谢谢。

  • 我的表单中有2个输入字段(电话号码),我应该验证这些输入。数字0-9和()-只允许,位数应该在5和11之间{5,11}。我试着用方法替换。你能解释一下,它是如何工作的吗?