我如何使用此模式:[A-Za-z0-9]{10}还匹配其他文本大小,如:12和25?
我试着让它像:
[A-Za-z0-9]{10|12|25}([A-Za-z0-9]){10}|{12}|{25}但它没有成功.
如果您只需要匹配特定尺寸,则需要使用替换:
^(?:[A-Za-z0-9]{10}|[A-Za-z0-9]{12}|[A-Za-z0-9]{25})$
Run Code Online (Sandbox Code Playgroud)
如果要匹配范围内的符号,例如10到25,则可以使用
^[A-Za-z0-9]{10,25}$
Run Code Online (Sandbox Code Playgroud)
另外,[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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1911 次 |
| 最近记录: |