gpt4 book ai didi

Java 正则表达式 - 不能以斜杠或空格开头或结尾,并且不能连续斜杠

转载 作者:行者123 更新时间:2023-11-30 06:09:10 25 4
gpt4 key购买 nike

我需要一个满足以下要求的正则表达式:

  • 可以包含字母数字字符、空格和斜杠
  • 不能以空格或斜线开头或结尾
  • 不能包含连续的斜杠
  • 长度可以在 2 到 20 个字符之间

到目前为止我有以下内容:

^[A-Za-z0-9][A-Za-z0-9/ ]{0,18}[A-Za-z0-9]$

我认为它涵盖了除连续斜杠之外的所有内容。 Java正则表达式有没有办法满足这个要求?

最佳答案

您可以在开头使用前瞻添加该条件:

^(?!.*//)[A-Za-z0-9][A-Za-z0-9/ ]{0,18}[A-Za-z0-9]$
^^^^^^^^

请参阅regex demo

前瞻 (?!.*//)negative由于 (?! 导致,一旦在除换行符 (.*) 之外的任何 0+ 个字符后发现任何 // ,匹配就会失败.

您可以在不使用 ^$ 的情况下使用 String#matches(请参阅 demo ):

String input = "abc //abc";
if (!input.matches("(?!.*//)[A-Za-z0-9][A-Za-z0-9/ ]{0,18}[A-Za-z0-9]")) {
System.out.println("Not matching!");
}

as String#matches 需要完整的字符串匹配,但为了清楚起见,我会保持 anchor 明确。

关于Java 正则表达式 - 不能以斜杠或空格开头或结尾,并且不能连续斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38395910/

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