我试图编写RegEx来匹配一些字符串,如ABCD1234567、123ABC456D7或12A34B56C7D。应该有4个字符和7个数字,顺序并不重要。不应该有任何特殊的人物像*,-等等。
我已经试过写这样的东西了。
^[A-Zaz]{4}[0-9]{7}$:
有人能帮我吗?
发布于 2019-10-16 15:13:35
模式^[A-Zaz]{4}[0-9]{7}$按该顺序匹配4次A和7位数字。
您可以使用带量词的查找周围断言:
^(?=(?:[^A-Za-z\r\n]*[A-Za-z]){4})(?=(?:[^0-9\r\n]*[0-9]){7})[A-Za-z0-9]+$^开始(?=(?:[^A-Za-z\r\n]*[A-Za-z]){4})断言4个字符A(?=(?:[^0-9\r\n]*[0-9]){7})断言7位数[A-Za-z0-9]+匹配1+乘以列表中的任何一个,或者使用[A-Za-z0-9]{11}来匹配正好11$末端发布于 2019-10-16 15:20:07
我会使用前瞻来检查允许的字符和精确长度,并匹配其他字符。
^(?=[A-Za-z\d]{11}$)\d*(?:\D\d*){4}$(?=[A-Za-z\d]{11}$)前瞻性检查是否准确地检查了11 [A-Za-z\d]\d*(?:\D\d*){4}正好将4个数字与中间的任何\D非数字相匹配。https://stackoverflow.com/questions/58416377
复制相似问题