Tag: language agnostic

为什么(。*)*制作两个匹配并在组$ 1中不选择任何内容?

这是因为关于forms化正则表达式语法的讨论。 我已经看到了几个正则表达式解析器的这种行为,因此我标记它与语言无关。 采用以下表达式(根据您喜欢的语言调整它): replace(“input”, “(.*)*”, “$1”) 它将返回一个空字符串。 为什么? 更奇怪的是,表达式replace(“input”, “(.*)*”, “A$1B”)将返回字符串ABAB 。 为什么双空配对? 免责声明:我知道回溯和贪婪的比赛,但杰弗里弗里德所规定的规则似乎决定了.*匹配一切,没有进一步的回溯或匹配。 那为什么$1是空的? 注意:与(.+)* ,返回输入字符串。 然而, http://regexhero.com显示仍有两场比赛,由于与上述相同的原因,这似乎很奇怪。

具有显着变化长度的输入的最佳StringBuffer初始容量是多少?

大家下午好,我正在使用java.lang.StringBuilder存储一些字符。 我不知道我要提前存储多少个角色,除了: 60%的时间,它只是(确切地)7个字符 39%的时间,(大约)3500个字符 1%的时间,大约是20k个字符 我们如何计算应该使用的最佳初始缓冲区长度? 目前我正在使用new java.lang.StringBuilder(4000)但这只是因为我以前懒得思考。

为什么可选参数必须出现在声明的末尾

在所有支持可选参数的编程语言中,我都看到可选参数必须出现在声明的末尾。 可选项目后可能不包含必需参数。 这是什么原因? 我想这可能是编译器/解释器的要求。