我必须检查客户订单号的前 5 个字符是否有数字和字母。 必须始终至少有 1 个字母和至少 1 个数字。
与检查无关的内部信息可以附加在订单号后。因此,只需检查前 5 个字符。
每次角色的位置都不同。
到目前为止我已经
\A\w{5}
但是我怎样才能检查是否总是有 1 个字母和 1 个数字呢?
字符串示例:
正确:
A1Aaa
、1AAAA
、1111a
、A1A1A. AAA123!A
错误:
aaAAA
、11111
、A AAA
、A1
、AA!1AA !A11
每个客户检查订单号的要求不同。我想将正则表达式保存在数据库中,以便使用正则表达式动态加载和检查每个客户的订单号。
以上是一位客户的要求。另一个有例如7 个字符,只有数字。
如果有人能帮助我那就太好了!
你可以使用
^(?=\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 个单词字符。