gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:39 24 4
gpt4 key购买 nike

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

我试着让它变成这样:

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

但是没有成功。

最佳答案

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

^(?:[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 regex reference)。

\p{Alnum} An alphanumeric character:[\p{Alpha}\p{Digit}]

带有 String#matches 的 Java code demo(不需要 anchor ):

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

关于java - 正则表达式:如何匹配多个值的确切长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34311964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com