gpt4 book ai didi

java - 如何创建一个正则表达式来找到确切的字符串长度?

转载 作者:搜寻专家 更新时间:2023-10-31 08:18:59 28 4
gpt4 key购买 nike

有这些情况:

  • 12345678901234
  • 123456789012345
  • 1234567890123456
  • 12345678901234567

我需要找到长度正好为 15 个字符的字符串。

到目前为止,我编写了这段代码:

String pattern = "(([0-9]){15})";
Mathcer m = new Mathcer(pattern);
if (m.find()){
System.out.println(m.group(1));
}

结果是这样的:

  • 12345678901234(未找到GOOD)
  • 123456789012345(发现)
  • 1234567890123456(发现不好)
  • 12345678901234567(发现不好)

我如何创建一个正则表达式,它可以给我准确的 15 结果,就像我认为这个正则表达式可以给我的那样。超过 15 个是 Not Acceptable 。

最佳答案

使用 ^$ anchor 标记字符串的开始和结束:

String pattern = "^([0-9]{15})$";
  • ^ 匹配字符串开头的位置
  • $ 匹配字符串末尾的位置

如果没有这些 anchor ,您只能在字符串中的任何位置查找 15 个连续数字。不过,匹配字符串可以额外包含更多数字(甚至包含字母),并且仍然匹配。

(另外,你的内括号对是多余的——我已经删除了它。如果你正在访问整个匹配的值而不是第一组捕获的值,你甚至可以发出其他括号:"^[0-9]{15}$")

Regex101 Demo

关于java - 如何创建一个正则表达式来找到确切的字符串长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034094/

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