当前位置:  开发笔记 > 编程语言 > 正文

正则表达式:如何匹配多个值的确切长度?

如何解决《正则表达式:如何匹配多个值的确切长度?》经验,为你挑选了1个好方法。

我如何使用此模式:[A-Za-z0-9]{10}还匹配其他文本大小,如:12和25?

我试着让它像:

    [A-Za-z0-9]{10|12|25}

    ([A-Za-z0-9]){10}|{12}|{25}

但它没有成功.



1> Wiktor Strib..:

如果您只需要匹配特定尺寸,则需要使用替换:

^(?:[A-Za-z0-9]{10}|[A-Za-z0-9]{12}|[A-Za-z0-9]{25})$

如果要匹配范围内的符号,例如10到25,则可以使用

^[A-Za-z0-9]{10,25}$

另外,[A-Za-z0-9]可以替换为\p{Alnum}(请参阅Java正则表达式参考).

\p{Alnum} 字母数字字符:[\p{Alpha}\p{Digit}]

Java的代码演示用String#matches(不需要锚):

System.out.println("1234567890".matches("[A-Za-z0-9]{10}|[A-Za-z0-9]{12}|[A-Za-z0-9]{25}")); 
// => true, 10  Alnum characters
System.out.println("12345678901".matches("\\p{Alnum}{10}|\\p{Alnum}{12}|\\p{Alnum}{25}"));
// => false, 11 Alnum characters
System.out.println("123456789012".matches("\\p{Alnum}{10}|\\p{Alnum}{12}|\\p{Alnum}{25}"));
// => true, 12  Alnum characters

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有