Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正则表达式模式格式验证_Java_Regex_Regex Negation_Regex Lookarounds - Fatal编程技术网

Java 正则表达式模式格式验证

Java 正则表达式模式格式验证,java,regex,regex-negation,regex-lookarounds,Java,Regex,Regex Negation,Regex Lookarounds,我需要一个正则表达式模式,它将由客户端发送,其中起始字符将是字母数字,该起始字符串的长度将由该字符串后的数字定义。这之后是一个特殊字符,它将始终是单个字符。然后是一个长度可变的字母数字字符串 我最接近下面的字符串和格式 [A-Za-z0-9]{4}-[A-Za-z0-9]{5} - RegEx Input String [A-Za-z0-9]{2}#[A-Za-z0-9]{6} - RegEx Input String [0-9]{3}#[0-9]{5}

我需要一个正则表达式模式,它将由客户端发送,其中起始字符将是字母数字,该起始字符串的长度将由该字符串后的数字定义。这之后是一个特殊字符,它将始终是单个字符。然后是一个长度可变的字母数字字符串

我最接近下面的字符串和格式

[A-Za-z0-9]{4}-[A-Za-z0-9]{5}         - RegEx Input String

[A-Za-z0-9]{2}#[A-Za-z0-9]{6}         - RegEx Input String

[0-9]{3}#[0-9]{5}                     - RegEx Input String

[a-z]{5}#[a-z]{5}                     - RegEx Input String

[A-Z]{4}#[a-z]{4}                     - RegEx Input String

[\w]{\d{1,1}}(\S{1,1})[\w]{\d{1,1}}   - RegEx Format
上述模式和格式正确吗

我们可以根据所需的正则表达式格式验证正则表达式输入字符串吗


这是一个web服务,其输入为[a-Za-z0-9]{4}-[a-Za-z0-9]{5}。我需要两样东西。首先,我如何验证此输入,以查看它是否匹配我想要的格式,并继续。格式是我上面提到的RegEx格式

此正则表达式应与您感兴趣的正则表达式子集相匹配:

\[(?:[a-zA-Z0-9](?:-[a-zA-Z0-9])?)*\](?:\{\d\})?\S\[(?:[a-zA-Z0-9](?:-[a-zA-Z0-9])?)*\](?:\{\d\})?
让我们把它分解一下:

  • 它匹配一行,该行按顺序包含字符类、可选量词、分隔符、第二个字符类及其第二个可选量词
  • 分隔符是任何非空白字符,
    \S
    (您可能希望将其更改为更具体的字符,或包含一些空白字符)
  • 可选的量词很简单,它是一个数字,用文字的花括号括起来,整个数字被一个我们用来使其可选的未绑定组所包围:
    (?:\{\d\})
    。请注意,这将不接受多位数长度,因此您可能希望将
    \d
    更改为
    \d+
    ,或者更具体的
    {m,n}
    范围量词
  • 字符类是由0个或多个字符或字符范围组成的序列,用文字括号括起来
  • 字符是字母或数字:
    [a-zA-Z0-9](?:-[a-zA-Z0-9])?
    当无界组不匹配时
  • 字符范围是一个字符,后跟文字
    -
    ,后跟另一个字符:
    [a-zA-Z0-9](?:-[a-zA-Z0-9])?
    ,当匹配无界组时

你能举一个字符串的例子吗?我没听清你问题的最后一句话。是元正则表达式吗?这是一个web服务,它的输入是[a-Za-z0-9]{4}-[a-Za-z0-9]{5}。我需要两样东西。首先,我如何验证此输入,以查看它是否匹配我想要的格式,并继续。这个格式就是我在文章中提到的正则表达式格式。你的元正则表达式是不正确的,例如它没有描述文字括号。我很确定有一个比正则表达式验证更容易解决问题的方法,你能解释一下为什么要这样做吗?这里有一个正则表达式与你的输入示例相匹配:
\[\w-]+\](?:\{\d(?-\d)?\)-\[\w-]+\](?:\{\d(?-\d)?\)
当然,只有一个示例我远不能确定这是你真正需要的。你好,亚伦,请你再增加一种可能性,我们可以在中心只包含一堆字符,而不是所有字符(\S),并且这个字符长度应该总是一个。这已经完成了:“\[(?:[a-zA-Z0-9](?:-[a-zA-Z0-9])*”(?:\{\\d\\)[-:,'=^!%>ç`$§;{1}[(?:[a-zA Z0-9](?:[a-zA-Z0-9])-)*”(?:[a-zA Z0-Z0-9])。\\\\\\\\\](?)@用户1我想我的回答有错<代码>\[(?:[a-zA-Z0-9](?:-[a-zA-Z0-9])?)*\](?:\{\d\})?​[-:,'=^!%>ç`$§;\[(?:[a-zA-Z0-9](?:-[a-zA-Z0-9])?)*\](?:\{\d\)应该可以正常工作。看看这个(我必须将
#
添加到您的角色类中,以使其与您提供的示例一起工作)