我的正则表达式需要帮助。
我必须检查客户订单号的前 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 个单词字符。