检查前 n 个字符中至少有 1 个数字和 1 个字母

问题描述 投票:0回答:1

我必须检查客户订单号的前 5 个字符是否有数字和字母。 必须始终至少有 1 个字母和至少 1 个数字。

与检查无关的内部信息可以附加在订单号后。因此,只需检查前 5 个字符。

每次角色的位置都不同。

到目前为止我已经

\A\w{5}

但是我怎样才能检查是否总是有 1 个字母和 1 个数字呢?

字符串示例:

正确:

A1Aaa
1AAAA
1111a
A1A1A. AAA123!A

错误:

aaAAA
11111
A AAA
A1
AA!1AA !A11

每个客户检查订单号的要求不同。我想将正则表达式保存在数据库中,以便使用正则表达式动态加载和检查每个客户的订单号。

以上是一位客户的要求。另一个有例如7 个字符,只有数字。

如果有人能帮助我那就太好了!

c# regex
1个回答
0
投票

你可以使用

^(?=\w{0,4}\p{L})(?=\w{0,4}\d)\w{5}

请参阅 正则表达式演示

详情

  • ^
    - 字符串的开头
  • (?=\w{0,4}\p{L})
    - 之后应该有 0 到 4 个单词字符,后跟一个字母
  • (?=\w{0,4}\d)
    - 前 5 个单词字符中也必须有一个数字
  • \w{5}
    - 然后匹配并消耗 5 个单词字符。
© www.soinside.com 2019 - 2024. All rights reserved.