gpt4 book ai didi

java - {m}{n} ("exactly n times"两次)如何工作?

转载 作者:IT老高 更新时间:2023-10-28 11:46:17 26 4
gpt4 key购买 nike

所以,不知何故(玩弄),我发现自己有一个像 \d{1}{2} 这样的正则表达式。

从逻辑上讲,对我来说,它应该意味着:

(A digit exactly once) exactly twice, i.e. a digit exactly twice.

但实际上,它似乎只是表示“一个数字恰好一次”(因此忽略了 {2})。

String regex = "^\\d{1}{2}$"; // ^$ to make those not familiar with 'matches' happy
System.out.println("1".matches(regex)); // true
System.out.println("12".matches(regex)); // false

使用 {n}{m,n} 或类似的方法可以看到类似的结果。

为什么会这样?它是在某个地方的正则表达式/Java 文档中明确说明,还是只是 Java 开发人员即时做出的决定,还是可能是一个错误?

或者它实际上并没有被忽略,它实际上意味着完全不同的东西?

这并不重要,但这不是全面的正则表达式行为,Rubular符合我的预期。

注意 - 标题主要是为了让想知道它如何工作(而不是为什么)的用户可搜索。

最佳答案

IEEE-Standard 1003.1说:

The behavior of multiple adjacent duplication symbols ( '*' and intervals) produces undefined results.

所以每个实现都可以随心所欲,只是不要依赖任何特定的东西......

关于java - {m}{n} ("exactly n times"两次)如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18958747/

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