gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:07:02 24 4
gpt4 key购买 nike

我的要求是:

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

例如以下是有效字符串:

Ab*08

*.6-*N*

以下是无效字符串:

****AB-*

GH.*

我的正则表达式如下:

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

第 1 点和第 2 点中提到的基本验证正在发挥作用。但正则表达式允许其他特殊字符,例如 <、> 和等。我如何修改我的正则表达式来实现此目的?

最佳答案

你可以使用

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

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

Obligatory regex 101

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

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

关于java - 正则表达式:允许最少的字母数字、点和 - 字符。任何地方都允许使用星号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42531510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com