我尝试使用此RegEX无解决方案
wdata
测试用例:有效
123D
F311
12D3
99A9
答案 0 :(得分:5)
如果组合可以按任何顺序排列,您可能需要明确列出备选方案,具体取决于您的正则表达式支持的内容:
^([a-zA-Z]\d{3}|\d[a-zA-Z]\d{2}|\d{2}[a-zA-Z]\d|\d{3}[a-zA-Z])$
答案 1 :(得分:1)
请根据您的要求检查以下表达
(?=(?:.*\d){3})(?=(?:.*[a-zA-Z]){1})^[a-zA-Z\d]*$
<强>击穿强>:
寻找至少3位数:
(?=(?:.*\d){3})
寻找至少1个字母:
(?=(?:.*[a-zA-Z]){1})
定义开始和结束之间允许的内容:
^[a-zA-Z\d]*$
您可以查看示例here。
答案 2 :(得分:0)
您可以使用前瞻来检查是否只有一个字母(不区分大小写)和数字:
^(?=\d*[a-z]\d*$).{4}$
或4个字符:
^(?=.{4}$)\d*[a-z]\d*$
如果前瞻不可用,您可以使用@cmbuckley模式,但您也可以将其分解。 ERE中的一个例子:
^([0-9]([0-9]([0-9][a-z]|[a-z][0-9])|[a-z][0-9]{2})|[a-z][0-9]{3})$
暂且不说:永远不要使用量词{1}
,默认情况下,每个没有量词的令牌都会出现一次。