至少有 2 个大写字母或 1 个数字的字母数字字母组合的正则表达式?
Regex for combination of alphnumeric letters which has at least 2 uppercase letter or 1 number?
我需要一个正则表达式来组合数字和大写字母,也许还有小写字母和 /,-
个字符,至少包含 4 个字符。
但当然至少要包含2个大写字母或一个数字
我试过这个:
barcode_regex = r"(?=(?:.+[A-Z]))(?=(?:.+[0-9]))([a-zA-Z0-9/-]{4,})"
例如匹配如下情况:
ametFXUT0
G197-6STK
adipiscXWWFHH
A654/9023847
HYJ/54GFJ
hgdy67h
您可以通过交替使用两个前瞻组合来检查 2 个大写字母或 1 个数字:
^(?:(?=.*[A-Z].*[A-Z])|(?=.*\d))[A-Za-z0-9/-]+$
这个正则表达式模式表示:
^
(?:
(?=.*[A-Z].*[A-Z]) assert that 2 or more uppercase are present
| OR
(?=.*\d) assert that at least one digit is present
)
[A-Za-z0-9/-]+ match any alphanumeric content (plus forward slash or dash)
$
您可以使用单个前瞻断言至少 4 个字符,并匹配允许范围内的单个数字或 2 个大写字符。
^(?=.{4})(?:[A-Za-z/,-]*\d|(?:[a-z\d/,-]*[A-Z]){2})[A-Za-z\d/,-]*$
说明
^
字符串开头
(?=.{4})
声明 4 个字符
(?:
非捕获组
[A-Za-z/,-]*\d
匹配不带数字的可选允许字符,然后匹配数字
|
或
(?:[a-z\d/,-]*[A-Z]){2}
匹配 2 次不带大写字符的可选允许字符,然后匹配大写字符
)
关闭非捕获组
[A-Za-z\d/,-]*
匹配可选的允许字符
$
字符串结束
看到一个regex demo。
我需要一个正则表达式来组合数字和大写字母,也许还有小写字母和 /,-
个字符,至少包含 4 个字符。
但当然至少要包含2个大写字母或一个数字
我试过这个:
barcode_regex = r"(?=(?:.+[A-Z]))(?=(?:.+[0-9]))([a-zA-Z0-9/-]{4,})"
例如匹配如下情况:
ametFXUT0
G197-6STK
adipiscXWWFHH
A654/9023847
HYJ/54GFJ
hgdy67h
您可以通过交替使用两个前瞻组合来检查 2 个大写字母或 1 个数字:
^(?:(?=.*[A-Z].*[A-Z])|(?=.*\d))[A-Za-z0-9/-]+$
这个正则表达式模式表示:
^
(?:
(?=.*[A-Z].*[A-Z]) assert that 2 or more uppercase are present
| OR
(?=.*\d) assert that at least one digit is present
)
[A-Za-z0-9/-]+ match any alphanumeric content (plus forward slash or dash)
$
您可以使用单个前瞻断言至少 4 个字符,并匹配允许范围内的单个数字或 2 个大写字符。
^(?=.{4})(?:[A-Za-z/,-]*\d|(?:[a-z\d/,-]*[A-Z]){2})[A-Za-z\d/,-]*$
说明
^
字符串开头(?=.{4})
声明 4 个字符(?:
非捕获组[A-Za-z/,-]*\d
匹配不带数字的可选允许字符,然后匹配数字|
或(?:[a-z\d/,-]*[A-Z]){2}
匹配 2 次不带大写字符的可选允许字符,然后匹配大写字符
)
关闭非捕获组[A-Za-z\d/,-]*
匹配可选的允许字符$
字符串结束
看到一个regex demo。