正则表达式 - 检查字符串中不同位置至少有 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个回答
-1
投票

你可以使用

^(?=\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.