正则表达式模式格式验证

Regex Pattern Format Validation

我需要一个 RegEx 模式,它将由客户端发送,其中起始字符将是字母数字,此起始字符串的长度将由此字符串后面的数字定义。紧随其后的是一个特殊字符,该字符始终是单个字符。这之后又是一个可变长度的字母数字字符串。

我最接近以下字符串和格式。

[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

以上模式和格式是否正确?

我们能否根据所需的 RegEx 格式验证 RegEx 输入字符串?

这是一个网络服务,其输入为 [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\})?

让我们分解一下:

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